{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"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-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":30,"y":30,"width":420,"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":50,"y":52.3,"width":380,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"USE Event-Driven When:","originalText":"USE Event-Driven When:","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"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-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":30,"y":123,"width":642.88984,"height":223.20000000000002,"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":50,"y":141,"width":602.88984,"height":187.20000000000002,"fontSize":18,"fontFamily":1,"text":"✅ Multiple services need to react to the same event\n(OrderPlaced → payment, inventory, notification, analytics)\n✅ Services should be independently deployable and scalable\n✅ You need an audit trail / event sourcing\n✅ Temporal decoupling: producer doesn't need immediate response\n✅ You're building read-optimized views (CQRS)\n✅ Data synchronization across systems (CDC)\n✅ Long-running workflows (sagas)","originalText":"✅ Multiple services need to react to the same event\n(OrderPlaced → payment, inventory, notification, analytics)\n✅ Services should be independently deployable and scalable\n✅ You need an audit trail / event sourcing\n✅ Temporal decoupling: producer doesn't need immediate response\n✅ You're building read-optimized views (CQRS)\n✅ Data synchronization across systems (CDC)\n✅ Long-running workflows (sagas)","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","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":30,"y":371.20000000000005,"width":420,"height":68,"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":50,"y":393.50000000000006,"width":380,"height":23.400000000000002,"fontSize":18,"fontFamily":1,"text":"DON'T USE Event-Driven When:","originalText":"DON'T USE Event-Driven When:","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"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-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":30,"y":464.20000000000005,"width":649.94944,"height":223.20000000000002,"customData":{"revealStep":4}},{"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-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":50,"y":482.20000000000005,"width":609.94944,"height":187.20000000000002,"fontSize":18,"fontFamily":1,"text":"❌ Simple CRUD with one consumer (REST is simpler)\n❌ Synchronous request-response is required\n(show payment result immediately, not \"eventually\")\n❌ Strong consistency across services is mandatory\n(use distributed transactions or accept complexity)\n❌ Team is small and services are few (over-engineering)\n❌ Debugging simplicity is more important than decoupling\n(async event flows are MUCH harder to debug than REST calls)","originalText":"❌ Simple CRUD with one consumer (REST is simpler)\n❌ Synchronous request-response is required\n(show payment result immediately, not \"eventually\")\n❌ Strong consistency across services is mandatory\n(use distributed transactions or accept complexity)\n❌ Team is small and services are few (over-engineering)\n❌ Debugging simplicity is more important than decoupling\n(async event flows are MUCH harder to debug than REST calls)","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}},{"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-5"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-9"}],"updated":0,"link":null,"locked":false,"id":"shape-8","type":"rectangle","seed":625,"x":30,"y":712.4000000000001,"width":603.68044,"height":129.60000000000002,"customData":{"revealStep":5}},{"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-5"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-9","type":"text","seed":698,"x":50,"y":730.4000000000001,"width":563.68044,"height":93.60000000000001,"fontSize":18,"fontFamily":1,"text":"The honest tradeoff:\nEvents give you: loose coupling, independent scaling, audit\nEvents cost you: eventual consistency, debugging complexity,\noperational overhead (Kafka, schemas, DLQs)","originalText":"The honest tradeoff:\nEvents give you: loose coupling, independent scaling, audit\nEvents cost you: eventual consistency, debugging complexity,\noperational overhead (Kafka, schemas, DLQs)","textAlign":"left","verticalAlign":"middle","containerId":"shape-8","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":5}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}