{"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":865.4,"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":829.4,"fontSize":22,"fontFamily":1,"text":"CONTROL PLANE\n\n• Merchant Config\n(API keys, payout\nschedule, fees,\ncurrency prefs)\n\n• Routing Engine\n(smart routing to\nbest-performing\nnetwork/acquirer)\n\n• Webhook Service\n(reliable async\ndelivery with retry +\nDLQ)\n\n• Subscription Mgr\n(recurring billing,\ndunning, proration)\n\n• Dispute Manager\n(chargeback flow,\nevidence upload,\nrepresentment)\n\n• Settlement /\nPayout Engine\n(batch, daily)","originalText":"CONTROL PLANE\n\n• Merchant Config\n(API keys, payout\nschedule, fees,\ncurrency prefs)\n\n• Routing Engine\n(smart routing to\nbest-performing\nnetwork/acquirer)\n\n• Webhook Service\n(reliable async\ndelivery with retry +\nDLQ)\n\n• Subscription Mgr\n(recurring billing,\ndunning, proration)\n\n• Dispute Manager\n(chargeback flow,\nevidence upload,\nrepresentment)\n\n• Settlement /\nPayout Engine\n(batch, daily)","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":925.4,"width":288,"height":1208.6000000000001,"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":943.4,"width":248,"height":1172.6000000000001,"fontSize":22,"fontFamily":1,"text":"DATA PLANE\n\n• Payment Service\n(Core)\n• Payment State\nMachine (intent→auth→\ncapture→settle)\n• Idempotency Service\n(Redis-backed, 48h\nTTL)\n\n• Token Vault (PCI\nScope)\nCard number → Token\nmapping\n(AES-256-GCM\nencrypted)\nHSM-backed key\nmanagement Isolated\nnetwork segment\n(PCI CDE)\n\n• Risk / Fraud Engine\n• ML model scoring\n(real-time, < 50ms)\n• Rules engine\n(velocity, geolocation,\ndevice fingerprint)\n• 3D Secure\nchallenge trigger\n\n• Ledger\n(Double-Entry)\nEvery money\nmovement = debit one\naccount + credit\nanother Append-only,\nimmutable log Sum of\nall debits = Sum of\nall credits (always\nbalanced)","originalText":"DATA PLANE\n\n• Payment Service\n(Core)\n• Payment State\nMachine (intent→auth→\ncapture→settle)\n• Idempotency Service\n(Redis-backed, 48h\nTTL)\n\n• Token Vault (PCI\nScope)\nCard number → Token\nmapping\n(AES-256-GCM\nencrypted)\nHSM-backed key\nmanagement Isolated\nnetwork segment\n(PCI CDE)\n\n• Risk / Fraud Engine\n• ML model scoring\n(real-time, < 50ms)\n• Rules engine\n(velocity, geolocation,\ndevice fingerprint)\n• 3D Secure\nchallenge trigger\n\n• Ledger\n(Double-Entry)\nEvery money\nmovement = debit one\naccount + credit\nanother Append-only,\nimmutable log Sum of\nall debits = Sum of\nall credits (always\nbalanced)","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}