←SYSTEM DESIGNDesign a Rate LimiterAWSCloudflareStripe
TRAFFIC LEVEL—/3
CONSTRAINTS
Per-user limit100 req/min
Per-API-key limit1,000 req/min
Global limit10M req/min
API servers100 nodes
Latency budget< 5ms overhead
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
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
🚨 INCIDENT
AWSCloudflareStripe
Design a rate limiter that enforces API quotas: 100 requests/minute per user, 1000 requests/minute per API key, and global 10M requests/minute. The limiter must add < 5ms latency and work across a distributed fleet of 100 API servers.