Design: Group Messaging System
Design covers backend architecture, data storage, real-time messaging, and APIs. Client UI design and multimedia messages are out of scope.
Functional Requirements
FR1: Users can create groups and add/remove members
FR2: Users can send messages to groups they belong to
FR3: Messages are delivered to all group members in real-time
FR4: Users can see message history in groups
FR5: Support text messages with timestamps and sender info
FR6: Support up to 100,000 concurrent users
FR7: Ensure message delivery latency under 200ms (p99)
FR8: Ensure 99.9% system availability
Non-Functional Requirements
NFR1: Handle up to 10,000 groups active simultaneously
NFR2: Store message history for at least 30 days
NFR3: Support mobile and web clients
NFR4: Secure user authentication and authorization
NFR5: Scalable to growing user base
