SYSTEM DESIGNDesign a Distributed Lock ServiceGoogleApacheHashiCorp
TRAFFIC LEVEL
—/3
CONSTRAINTS
Lock service nodes5 (Raft quorum)
Lock operations/sec10,000
Lock TTL range1 sec – 30 sec
Network partition toleranceMajority quorum (3/5 nodes)
Leader election time< 1 sec
Compute & Network
Load BalancerDistribute traffic
API GatewayEntry point / auth
API ServerBusiness logic
Worker NodeAsync processing
CDN EdgeGlobal cache
WebSocket GatewayPersistent connections
Data Stores
PostgreSQLRelational DB
MySQLRelational DB
CassandraWide-Column DB
DynamoDBNoSQL / Managed
S3 BucketObject storage
Queues & Cache
Redis CacheIn-memory store
KafkaEvent stream
ZookeeperCoordination
Specialized
Bloom FilterProbabilistic set
Rate LimiterThrottling
Geohash ServiceGeospatial index
Trie ServerPrefix search
APNS / FCMPush notifications
AggregatorBatch / roll-up
Drag to canvas · Hover node for × to delete · Draw from handle to connect
Design your architecture
Drag components from the left panel · Connect them by drawing from a node handle · Hit Start Simulation to validate
🚨 INCIDENT
GoogleApacheHashiCorp

Design a distributed lock service (like Google Chubby or Apache ZooKeeper). Allow multiple nodes in a cluster to acquire exclusive locks on named resources. Locks must be safe (only one holder at a time), live (no deadlocks), and fault-tolerant (lock service crash doesn't corrupt lock state).

📥 Assigned to:You — Senior Engineer
SCALE LEVELS
1
1,000 RPS
Target: <10ms
2
10,000 RPS
Target: <20ms
3
50,000 RPS
Target: <15ms
GLOBAL SUCCESS RATE
100.0%
P99 LATENCY
45ms
Target: < 200ms
TOTAL RPS INGESTED0 / 11,000
EngPrep — Real Engineering. Real Interviews.