Design a Slack-Like Messaging System
Company: OpenAI
Role: Software Engineer
Category: System Design
Difficulty: medium
Interview Round: Technical Screen
Quick Answer: This question evaluates understanding of real-time team messaging architecture, covering core entities (users, workspaces, channels, direct messages, messages), APIs for sending and receiving, persistent connections for real-time delivery, offline message recovery, ordering guarantees, notification behavior, and scalability concerns such as storage, queues, and fanout. It is commonly asked to assess architectural reasoning about trade-offs between latency, correctness, consistency, and user experience; it falls under the system design and distributed backend engineering domain and requires practical application-level systems thinking rather than purely conceptual understanding.