Design: Fan-out Messaging System
Design the message delivery mechanism focusing on fan-out strategies. Out of scope: message content creation, user authentication, and UI design.
Functional Requirements
FR1: Deliver messages from one sender to many receivers efficiently
FR2: Support real-time or near real-time message delivery
FR3: Handle up to 1 million users with 100,000 concurrent active users
FR4: Ensure message delivery latency under 200ms for 99th percentile
FR5: Allow users to read their message feeds on demand
Non-Functional Requirements
NFR1: System availability of 99.9% uptime
NFR2: Support horizontal scaling as user base grows
NFR3: Minimize storage and compute costs
NFR4: Handle spikes in message volume gracefully
