Slack supports billions of daily messages by maintaining over five million simultaneous WebSocket sessions at peak hours, addressing the architectural challenge of real-time interaction. Initially developed from a video game infrastructure, Slack's architecture separates message propagation from business logic and adopted a push-first model using WebSockets. Significant challenges included scaling session initialization for large teams and ensuring message persistence and order through atomic broadcast approximations. Innovations like Flannel and architectural shifts improved the system's resilience and efficiency at scale, embracing complexity where necessary while simplifying other areas.
Table of contents
Generate your MCP server with Speakeasy (Sponsored)Real-Time Code Reviews Powered by AI (Sponsored)Initial ArchitectureOld vs New Send FlowsSession Initialization and the Need for FlannelScaling Considerations and Trade-offsConclusionSPONSOR US1 Comment
Sort: