Bird
Raised Fist0
HLDsystem_design~12 mins

Message delivery guarantees in HLD - Architecture Diagram

Choose your learning style9 modes available
System Overview - Message delivery guarantees

This system ensures messages sent between users or services are delivered reliably. It supports different delivery guarantees like at-most-once, at-least-once, and exactly-once to meet various application needs.

Key requirements include handling message loss, duplication, and ordering while maintaining scalability and fault tolerance.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  v
Message Producer Service
  |
  v
Message Queue (Broker)
  |
  v
Message Consumer Service
  |
  v
Database
  |
  v
Cache
Components
User
client
Initiates message sending requests
Load Balancer
load_balancer
Distributes incoming requests evenly to API Gateway instances
API Gateway
api_gateway
Handles client requests, authentication, and routes to producer service
Message Producer Service
service
Accepts messages from users and publishes them to the message queue
Message Queue (Broker)
message_queue
Stores messages reliably and supports delivery guarantees
Message Consumer Service
service
Consumes messages from the queue and processes or delivers them
Database
database
Stores message metadata and delivery status for tracking and deduplication
Cache
cache
Speeds up access to recent message delivery states to reduce database load
Request Flow - 8 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayMessage Producer Service
Message Producer ServiceMessage Queue (Broker)
Message Queue (Broker)Message Consumer Service
Message Consumer ServiceDatabase
Message Consumer ServiceCache
Message Consumer ServiceUser
Failure Scenario
Component Fails:Message Queue (Broker)
Impact:Messages cannot be stored or delivered, causing message loss or delay
Mitigation:Use replicated queues with failover; retry producers on failure; persist messages on disk
Architecture Quiz - 3 Questions
Test your understanding
Which component ensures messages are stored reliably before delivery?
ACache
BMessage Queue (Broker)
CLoad Balancer
DAPI Gateway
Design Principle
This architecture demonstrates how to achieve reliable message delivery by combining a message queue for durability, services for processing, and caching for performance. It uses layered components to handle failures gracefully and meet different delivery guarantees.