Bird
0
0
LLDsystem_design~12 mins

Reservation and hold system in LLD - Architecture Diagram

Choose your learning style9 modes available
System Overview - Reservation and hold system

This system allows users to reserve items or resources temporarily by placing a hold on them. It ensures that held items are not double-booked and releases holds after a timeout if not confirmed. Key requirements include real-time availability checks, hold expiration, and scalability to handle many concurrent users.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  v
Reservation Service <--> Cache
  |
  v
Database
  |
  v
Message Queue
  |
  v
Hold Expiration Worker
Components
User
client
Initiates reservation and hold requests
Load Balancer
load_balancer
Distributes incoming requests evenly to API Gateway instances
API Gateway
api_gateway
Routes requests to Reservation Service and handles authentication
Reservation Service
service
Processes reservation and hold logic, checks availability
Cache
cache
Stores current holds and availability for fast access
Database
database
Stores persistent reservation and hold data
Message Queue
message_queue
Queues hold expiration events asynchronously
Hold Expiration Worker
worker
Processes hold expiration messages and releases holds
Request Flow - 13 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayReservation Service
Reservation ServiceCache
Reservation ServiceDatabase
Reservation ServiceCache
Reservation ServiceMessage Queue
Message QueueHold Expiration Worker
Hold Expiration WorkerDatabase
Hold Expiration WorkerCache
Reservation ServiceAPI Gateway
API GatewayLoad Balancer
Load BalancerUser
Failure Scenario
Component Fails:Cache
Impact:Reservation Service cannot quickly check or update availability, causing slower responses and possible stale data reads.
Mitigation:System falls back to querying the database directly for availability. Cache is rebuilt asynchronously from database data to restore fast access.
Architecture Quiz - 3 Questions
Test your understanding
Which component handles authentication before processing reservation requests?
AAPI Gateway
BReservation Service
CLoad Balancer
DCache
Design Principle
This architecture uses caching to speed up availability checks and a message queue with a worker to handle hold expirations asynchronously, improving scalability and responsiveness while ensuring data consistency.