大家好,我很高兴分享我最近的项目。这个项目叫Echo,是一款团队聊天应用,属于Slack家族。为什么这个项目会让你感兴趣?因为源代码是开放的,可以供大家阅读。https://preview.redd.it/20k7ft8icfih1.png?width=1917&format=png&auto=webp&s=4d002db550c99db2981bb65cfb9ef1278fa05a20 Echo是一款试图重现Slack功能面的应用,包括工作空间创建、频道、群发消息和文件共享。构建实时应用时,通常选择WebSocket作为传输协议。但是,构建可靠的系统并扩展到大规模时,引发了两个主要挑战:维持健康的消息传递系统和确保架构能够随着应用的增长而扩展。这些挑战是开发者在开发此项目时可能面临的主要挑战,以及他们如何应对的。 Echo系统上使用Postgres作为事件/消息总线,使用事件版本控制和无缝的每个频道序列来提供消息传递的可靠性和恢复层。同样,这一层允许服务器保持无状态,从而使应用准备好通过Kubernetes进行水平扩展。另一方面,使用每个租户的模式来隔离每个工作空间的数据,并将其直接绑定到工作空间的租户路径。该堆栈故意被限制。 Express和TypeScript在Bun上,React与Vite用于快速交付,Tanstack Query作为应用状态存储。 Postgres承担了三个服务的工作:控制平面数据、租户数据和实时后端。 Better Auth处理身份,而 Zod验证每个请求并从相同的模式生成API文档。 如果你想探索一下,可以在线尝试:https://echo-v2.online/accept-invite/r5DP9Vdq9RwLtsU9aqeR-Q2wO9WI-aShDUYUST0Z29w 你的反馈是非常欢迎的。感谢你花时间阅读和尝试这个项目。如果你喜欢它,GitHub仓库已经附在下面,投一个星星将会非常感谢:前往仓库
建立实时聊天是件事情。 但让它可靠是难点。
评论 (0)