Bird
Raised Fist0
HLDsystem_design~12 mins

Design a unique ID generator in HLD - Architecture Diagram

Choose your learning style9 modes available
System Overview - Design a unique ID generator

This system generates unique IDs that can be used across distributed services without collisions. It must be fast, scalable, and highly available to support many requests per second.

Architecture Diagram
User
  |
  v
Load Balancer
  |
  v
API Gateway
  |
  v
+-------------------+
| Unique ID Service  |
|  +-------------+  |
|  | ID Generator|  |
|  +-------------+  |
+-------------------+
        |
        v
  +-------------+
  |   Cache     |
  +-------------+
        |
        v
  +-------------+
  |  Database   |
  +-------------+
Components
User
client
Sends requests to generate unique IDs
Load Balancer
load_balancer
Distributes incoming requests evenly to API Gateway instances
API Gateway
api_gateway
Handles client requests and routes them to the Unique ID Service
Unique ID Service
service
Generates unique IDs using a combination of timestamp, machine ID, and sequence number
Cache
cache
Caches recent sequence numbers and machine IDs to speed up ID generation
Database
database
Stores metadata such as machine IDs and sequence counters for ID generation
Request Flow - 11 Hops
UserLoad Balancer
Load BalancerAPI Gateway
API GatewayUnique ID Service
Unique ID ServiceCache
CacheUnique ID Service
Unique ID ServiceDatabase
DatabaseUnique ID Service
Unique ID ServiceCache
Unique ID ServiceAPI Gateway
API GatewayLoad Balancer
Load BalancerUser
Failure Scenario
Component Fails:Database
Impact:New machine ID assignments and sequence resets fail; cache can still serve recent sequence numbers but new sequences may stall
Mitigation:Use database replication for high availability; rely on cache for recent sequences; alert operators to fix DB quickly
Architecture Quiz - 3 Questions
Test your understanding
Which component distributes incoming user requests evenly to prevent overload?
AUnique ID Service
BLoad Balancer
CAPI Gateway
DCache
Design Principle
This design uses caching to reduce database load and latency for generating unique IDs. The combination of timestamp, machine ID, and sequence number ensures uniqueness across distributed systems. Load balancing and API gateway improve scalability and availability.