{"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":16,"y":16,"width":288,"height":951.2,"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":36,"y":34,"width":248,"height":915.2,"fontSize":22,"fontFamily":1,"text":"Event Flow Monitoring\nDashboard\n\nPer-topic metrics:\n• Throughput:\nevents/sec (in, out)\n• Consumer lag per\ngroup (how far\nbehind?)\n• Error rate per\nconsumer group\n• DLQ depth per\nconsumer group\n• Schema\ncompatibility status\n• p99 processing\nlatency per consumer\n\n• Event Topology\n(live)\nOrderSvc --→\n[orders.placed] --→\nInventorySvc --→\nPaymentSvc --→\nNotificationSvc --→\nAnalyticsPipeline\nInventorySvc --→\n[inventory.reserved]\n--→ OrderSvc\nPaymentSvc --→\n[payments.completed]\n--→ OrderSvc","originalText":"Event Flow Monitoring\nDashboard\n\nPer-topic metrics:\n• Throughput:\nevents/sec (in, out)\n• Consumer lag per\ngroup (how far\nbehind?)\n• Error rate per\nconsumer group\n• DLQ depth per\nconsumer group\n• Schema\ncompatibility status\n• p99 processing\nlatency per consumer\n\n• Event Topology\n(live)\nOrderSvc --→\n[orders.placed] --→\nInventorySvc --→\nPaymentSvc --→\nNotificationSvc --→\nAnalyticsPipeline\nInventorySvc --→\n[inventory.reserved]\n--→ OrderSvc\nPaymentSvc --→\n[payments.completed]\n--→ OrderSvc","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"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-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":16,"y":1011.2,"width":288,"height":2066.6000000000004,"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":36,"y":1029.2000000000003,"width":248,"height":2030.6000000000001,"fontSize":22,"fontFamily":1,"text":"Distributed Tracing\nAcross Events\n\nChallenge: Request\nspans 5 services via\nasync events.\nHow to trace the\nfull flow?\n\nSolution: Propagate\ntrace context\nthrough event\nmetadata\n\nEvent metadata\ncarries:\n\"correlation_id\":\n\"req-abc123\" ← ties\nall events to one\nrequest\n\"causation_id\":\n\"evt-parent\" ← which\nevent caused this\none\n\"trace_id\":\n\"trace-456\" ←\nOpenTelemetry trace\nID\n\"span_id\": \"span-789\"\n← span that produced\nthis event\n\nTrace visualization:\ntrace-456\nspan: API Gateway\n(5ms)\nspan: Order Service -\nPlaceOrder (20ms)\nevent published:\nOrderPlaced\n[async gap: 15ms in\nKafka]\nspan: Inventory\nService -\nReserveStock (30ms)\nevent published:\nStockReserved\n[async gap: 10ms]\nspan: Payment\nService -\nChargePayment\n(1200ms)\nevent published:\nPaymentCompleted\nspan: Notification\nService - SendEmail\n(200ms)\n\nKey metrics per\nevent flow:\n• End-to-end latency\n(first event → last\nevent)\n• Per-hop latency\n(each service\nprocessing time)\n• Queue wait time\n(time spent in Kafka\nbefore consumption)\n• Consumer lag (how\nfar behind real-time)","originalText":"Distributed Tracing\nAcross Events\n\nChallenge: Request\nspans 5 services via\nasync events.\nHow to trace the\nfull flow?\n\nSolution: Propagate\ntrace context\nthrough event\nmetadata\n\nEvent metadata\ncarries:\n\"correlation_id\":\n\"req-abc123\" ← ties\nall events to one\nrequest\n\"causation_id\":\n\"evt-parent\" ← which\nevent caused this\none\n\"trace_id\":\n\"trace-456\" ←\nOpenTelemetry trace\nID\n\"span_id\": \"span-789\"\n← span that produced\nthis event\n\nTrace visualization:\ntrace-456\nspan: API Gateway\n(5ms)\nspan: Order Service -\nPlaceOrder (20ms)\nevent published:\nOrderPlaced\n[async gap: 15ms in\nKafka]\nspan: Inventory\nService -\nReserveStock (30ms)\nevent published:\nStockReserved\n[async gap: 10ms]\nspan: Payment\nService -\nChargePayment\n(1200ms)\nevent published:\nPaymentCompleted\nspan: Notification\nService - SendEmail\n(200ms)\n\nKey metrics per\nevent flow:\n• End-to-end latency\n(first event → last\nevent)\n• Per-hop latency\n(each service\nprocessing time)\n• Queue wait time\n(time spent in Kafka\nbefore consumption)\n• Consumer lag (how\nfar behind real-time)","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}