{"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":35.999999999999986,"y":32,"width":242.83948,"height":68,"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":55.999999999999986,"y":54.3,"width":202.83948,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"Column | Type | Notes","originalText":"Column | Type | Notes","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":318.83948,"y":32,"width":390,"height":316.8,"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":338.83948,"y":50,"width":350,"height":280.8,"fontSize":18,"fontFamily":1,"text":"conversation_id | UUID | Partition\nkey\nmessage_id | TimeUUID | Clustering\nkey\nsender_id | UUID\nmessage_type | ENUM | TEXT,\nIMAGE, VIDEO\ncontent | BLOB | Encrypted text\nmedia_url | TEXT | S3 URL if media\ncreated_at | TIMESTAMP\nstatus | MAP<UUID,INT>| {user_id:\nstatus}","originalText":"conversation_id | UUID | Partition\nkey\nmessage_id | TimeUUID | Clustering\nkey\nsender_id | UUID\nmessage_type | ENUM | TEXT,\nIMAGE, VIDEO\ncontent | BLOB | Encrypted text\nmedia_url | TEXT | S3 URL if media\ncreated_at | TIMESTAMP\nstatus | MAP<UUID,INT>| {user_id:\nstatus}","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":388.8,"width":553.24564,"height":279.1,"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":406.8,"width":513.24564,"height":243.1,"fontSize":17,"fontFamily":1,"text":"messages table\n\nPartition Key: conversation_id\nClustering Key: message_id (TimeUUID — sorted by time)\n\nWhy Cassandra?\n✅ Write-heavy workload (20B messages/day)\n✅ Partition by conversation = all messages co-located\n✅ TimeUUID clustering = messages sorted by time\n✅ Linear horizontal scaling\n✅ Tunable consistency (W=1 for speed, R=2 for accuracy)","originalText":"messages table\n\nPartition Key: conversation_id\nClustering Key: message_id (TimeUUID — sorted by time)\n\nWhy Cassandra?\n✅ Write-heavy workload (20B messages/day)\n✅ Partition by conversation = all messages co-located\n✅ TimeUUID clustering = messages sorted by time\n✅ Linear horizontal scaling\n✅ Tunable consistency (W=1 for speed, R=2 for accuracy)","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}