Design a multi-tenant Slack-like messenger
Company: OpenAI
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
Design a multi-tenant B2B team-messaging platform like Slack. Functional requirements: workspaces (organizations), channels and direct messages, message fan-out to thousands of members, presence/typing indicators, reactions/threads, full-text search, file sharing, and push notifications. Enterprise requirements: SSO/SAML, role-based access control, audit logs, eDiscovery/compliance exports, data retention policies, and cross-workspace federation. Non-functional goals: 50M DAU, up to 10M concurrent connections, p99 intra-workspace delivery under 200 ms, durable storage with RPO=0 across availability zones, and cost efficiency. Cover: overall architecture (gateway, WebSocket vs. HTTP/2, message queues), data modeling (users, workspaces, channels, messages, indexes), fan-out patterns (write vs. read), ordering and idempotency, offline delivery and pagination, search indexing pipeline, media storage and CDN, rate limiting and abuse prevention, multi-region strategy (latency, failover, data residency), observability, and backfill/migration strategies. Provide key APIs and schema sketches.
Quick Answer: This question evaluates skills in large-scale distributed systems architecture, real-time messaging and presence, data modeling for multi-tenant platforms, security and compliance features, and operational concerns like observability and cost efficiency.