{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":36,"y":32,"width":390,"height":410.40000000000003,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":56,"y":50,"width":350,"height":374.40000000000003,"fontSize":18,"fontFamily":1,"text":"CLIENT LAYER\n\n• Connection Pool (reuse TCP conns,\nmultiplexing)\n\n• Consistent Hash Router (key →\nshard mapping)\n\n• Circuit Breaker (fail fast if shard\nis down)\n\n• Read-Through / Write-Through\nLogic\n\n• Local L1 Cache (in-process cache\nfor hottest keys)","originalText":"CLIENT LAYER\n\n• Connection Pool (reuse TCP conns,\nmultiplexing)\n\n• Consistent Hash Router (key →\nshard mapping)\n\n• Circuit Breaker (fail fast if shard\nis down)\n\n• Read-Through / Write-Through\nLogic\n\n• Local L1 Cache (in-process cache\nfor hottest keys)","textAlign":"center","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":466,"y":32,"width":390,"height":597.6,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":486,"y":50,"width":350,"height":561.6,"fontSize":18,"fontFamily":1,"text":"CACHE NODE (per shard)\n\n• Event Loop (single-threaded)\nCommand Parser → Execute →\nResponse\n• I/O Threads (6) read/write socket\nbuffers\n\n• Hash Table (main dict)\nkey → value pointer Open addressing\n/ chained hashing Incremental\nrehashing\n\n• Expiry Hash Table (keys with TTL\n→ lazy + active expiry)\n\n• Eviction Engine (LRU / LFU /\nrandom / volatile-lru / allkeys-lru)\n\n• Persistence Engine (RDB fork +\nsnapshot / AOF append + rewrite)\n\n• Replication Engine (async\nreplication to replicas, repl backlog)","originalText":"CACHE NODE (per shard)\n\n• Event Loop (single-threaded)\nCommand Parser → Execute →\nResponse\n• I/O Threads (6) read/write socket\nbuffers\n\n• Hash Table (main dict)\nkey → value pointer Open addressing\n/ chained hashing Incremental\nrehashing\n\n• Expiry Hash Table (keys with TTL\n→ lazy + active expiry)\n\n• Eviction Engine (LRU / LFU /\nrandom / volatile-lru / allkeys-lru)\n\n• Persistence Engine (RDB fork +\nsnapshot / AOF append + rewrite)\n\n• Replication Engine (async\nreplication to replicas, repl backlog)","textAlign":"center","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":36,"y":669.5999999999999,"width":390,"height":270,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":56,"y":687.5999999999999,"width":350,"height":234,"fontSize":18,"fontFamily":1,"text":"CLUSTER MANAGEMENT\n\n• Cluster Bus (gossip protocol, node\ndiscovery, failure detection)\n\n• Sentinel / Raft (failure detection,\nautomatic leader election)\n\n• Slot Migration (rebalance when\nadd/remove nodes)","originalText":"CLUSTER MANAGEMENT\n\n• Cluster Bus (gossip protocol, node\ndiscovery, failure detection)\n\n• Sentinel / Raft (failure detection,\nautomatic leader election)\n\n• Slot Migration (rebalance when\nadd/remove nodes)","textAlign":"center","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}