{"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":31.99999999999997,"width":390,"height":480.6,"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":49.99999999999997,"width":350,"height":444.6,"fontSize":18,"fontFamily":1,"text":"CONTROL PLANE\n\n• Namespace Service (bucket CRUD,\nglobal uniqueness)\n\n• IAM / Auth Service (policies, ACLs,\npresigned URLs)\n\n• Lifecycle Mgr (transition objects\nbetween storage classes)\n\n• Placement Service (decide which\nnodes store data)\n\n• Replication Mgr (ensure 3 replicas\nacross AZs)\n\n• Garbage Collector (clean orphaned\ndata, expired versions)","originalText":"CONTROL PLANE\n\n• Namespace Service (bucket CRUD,\nglobal uniqueness)\n\n• IAM / Auth Service (policies, ACLs,\npresigned URLs)\n\n• Lifecycle Mgr (transition objects\nbetween storage classes)\n\n• Placement Service (decide which\nnodes store data)\n\n• Replication Mgr (ensure 3 replicas\nacross AZs)\n\n• Garbage Collector (clean orphaned\ndata, expired versions)","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":644.4,"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":608.4,"fontSize":18,"fontFamily":1,"text":"DATA PLANE\n\n• API Gateway Layer\n• Parse S3-compatible REST API\n• Authenticate (HMAC-SHA256\nsigning)\n• Route to metadata or data\nservice\n\n• Metadata Service\nBacked by: distributed KV store (like\nDynamoDB / FoundationDB) Strongly\nconsistent reads (quorum-based)\n• Bucket Metadata (name, owner,\nregion, config)\n• Object Metadata (key, size, etag,\nstorage_class, data_locations)\n\n• Data Service\nObjects split into chunks →\ndistributed across nodes Each chunk\nreplicated to 3 AZs\n• Data Node AZ-a 12× 20TB HDD\nChunk storage\n• Data Node AZ-b 12× 20TB HDD\nChunk storage","originalText":"DATA PLANE\n\n• API Gateway Layer\n• Parse S3-compatible REST API\n• Authenticate (HMAC-SHA256\nsigning)\n• Route to metadata or data\nservice\n\n• Metadata Service\nBacked by: distributed KV store (like\nDynamoDB / FoundationDB) Strongly\nconsistent reads (quorum-based)\n• Bucket Metadata (name, owner,\nregion, config)\n• Object Metadata (key, size, etag,\nstorage_class, data_locations)\n\n• Data Service\nObjects split into chunks →\ndistributed across nodes Each chunk\nreplicated to 3 AZs\n• Data Node AZ-a 12× 20TB HDD\nChunk storage\n• Data Node AZ-b 12× 20TB HDD\nChunk storage","textAlign":"center","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}