Slack is a real-time messaging platform used by organizations for communication between team members. The system design of Slack depends on the design of the Real-Time Platform and Real-Time Presence Platform. The client publishes chat messages through an HTTP POST request to the web API, and the Slack client fetches the initial screen by making an HTTP POST request to the web API for login, which returns a snapshot of the entire workspace. The chat service persists the chat messages in the chat database and delegates them to the subscribed gateway servers over HTTP. The gateway server broadcasts the chat messages to the subscribed users over WebSocket.
Table of contents
What is Slack?TerminologyQuestions to ask the InterviewerRequirementsSlack APISlack DatabaseBack of the Envelope SlackSlack ArchitectureSlack Architecture Deep DiveSummarySupportWhat to learn next?LicenseReferencesSort: