Design: One-to-one Messaging System
Design covers backend architecture, data storage, and message delivery mechanisms. Client UI and encryption details are out of scope.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
Client (Web/Mobile)
|
v
API Gateway / Load Balancer
|
Authentication Service
|
Messaging Service <--> Cache (User presence, recent messages)
|
Message Queue / Pub-Sub
|
Persistent Storage (Database)
|
Notification Service (for offline users)def send_message(sender, receiver, message):
server.store_message(sender, receiver, message)
server.deliver_message(receiver)
send_message('Alice', 'Bob', 'Hello')
What is the expected output or result of this code?def deliver_message(receiver, message):
if receiver.is_online == False:
return
send_to_client(receiver, message)
What is the main issue causing message delivery failure?