{
 "type": "excalidraw",
 "version": 2,
 "source": "https://excalidraw.com",
 "elements": [
  {
   "id": "r678791587",
   "type": "rectangle",
   "x": 20,
   "y": 60,
   "width": 740,
   "height": 560,
   "angle": 0,
   "strokeColor": "#dddddd",
   "backgroundColor": "#eaf4ec",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 767537714,
   "versionNonce": 1213682848,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t1399491064",
   "type": "text",
   "x": 32,
   "y": 66,
   "width": 297.0,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 654726606,
   "versionNonce": 166229180,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "CQRS-lite \u2014 this book's approach, implemented",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "CQRS-lite \u2014 this book's approach, implemented",
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "r1621124077",
   "type": "rectangle",
   "x": 800,
   "y": 60,
   "width": 740,
   "height": 560,
   "angle": 0,
   "strokeColor": "#dddddd",
   "backgroundColor": "#fafafa",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 763710044,
   "versionNonce": 304377437,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t552200859",
   "type": "text",
   "x": 812,
   "y": 66,
   "width": 402.6,
   "height": 15.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 383041119,
   "versionNonce": 1485061749,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Full event sourcing \u2014 illustrative only, not implemented here",
   "fontSize": 12,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Full event sourcing \u2014 illustrative only, not implemented here",
   "lineHeight": 1.25,
   "baseline": 12
  },
  {
   "id": "r616047617",
   "type": "rectangle",
   "x": 140,
   "y": 120,
   "width": 500,
   "height": 110,
   "angle": 0,
   "strokeColor": "#3d7a4e",
   "backgroundColor": "#eaf4ec",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 931943026,
   "versionNonce": 56612238,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t809280615",
   "type": "text",
   "x": 150,
   "y": 128,
   "width": 254.10000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 197920342,
   "versionNonce": 500752103,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Order aggregate (the write model)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Order aggregate (the write model)",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t979016975",
   "type": "text",
   "x": 150,
   "y": 148,
   "width": 242.00000000000003,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 280248321,
   "versionNonce": 1228905797,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OrderService.placeOrder() \u2014 mutable rows",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "OrderService.placeOrder() \u2014 mutable rows",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1462157003",
   "type": "text",
   "x": 150,
   "y": 163,
   "width": 235.95000000000002,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 869728449,
   "versionNonce": 1603902049,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "current state stored directly, Postgres",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "current state stored directly, Postgres",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r1230494937",
   "type": "rectangle",
   "x": 140,
   "y": 280,
   "width": 500,
   "height": 100,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "#111111",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 708034986,
   "versionNonce": 1863230869,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t137287903",
   "type": "text",
   "x": 150,
   "y": 288,
   "width": 138.60000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#ffffff",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 360416040,
   "versionNonce": 759122296,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "order.placed event",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "order.placed event",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t174319474",
   "type": "text",
   "x": 150,
   "y": 308,
   "width": 187.55,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1676527755,
   "versionNonce": 473845907,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "published via outbox (ch.17/20)",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "published via outbox (ch.17/20)",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1387368709",
   "type": "text",
   "x": 150,
   "y": 323,
   "width": 187.55,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1353734959,
   "versionNonce": 1861964000,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "one fact, not the whole history",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "one fact, not the whole history",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r676587583",
   "type": "rectangle",
   "x": 140,
   "y": 430,
   "width": 500,
   "height": 120,
   "angle": 0,
   "strokeColor": "#3d7a4e",
   "backgroundColor": "#eaf4ec",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 694763289,
   "versionNonce": 1946554651,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t1997671265",
   "type": "text",
   "x": 150,
   "y": 438,
   "width": 238.70000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1606331283,
   "versionNonce": 846731848,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "notification-service read model",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "notification-service read model",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t1460242662",
   "type": "text",
   "x": 150,
   "y": 458,
   "width": 211.75000000000003,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 956197825,
   "versionNonce": 140022009,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Notification row = fold of one fact",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Notification row = fold of one fact",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t760403857",
   "type": "text",
   "x": 150,
   "y": 473,
   "width": 242.00000000000003,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 216784565,
   "versionNonce": 903191569,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "idempotent check-then-insert, own schema",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "idempotent check-then-insert, own schema",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r1027998063",
   "type": "rectangle",
   "x": 880,
   "y": 120,
   "width": 500,
   "height": 110,
   "angle": 0,
   "strokeColor": "#999999",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 125435245,
   "versionNonce": 1907710129,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t1255727520",
   "type": "text",
   "x": 890,
   "y": 128,
   "width": 315.70000000000005,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1380908229,
   "versionNonce": 1604506177,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Event log (the write model, illustrative)",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Event log (the write model, illustrative)",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t1813490246",
   "type": "text",
   "x": 890,
   "y": 148,
   "width": 175.45000000000002,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1912845100,
   "versionNonce": 1395446410,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OrderPlaced, PaymentCaptured,",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "OrderPlaced, PaymentCaptured,",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t285740769",
   "type": "text",
   "x": 890,
   "y": 163,
   "width": 205.70000000000002,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1777734993,
   "versionNonce": 1755006201,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ShipmentDispatched, OrderConfirmed",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "ShipmentDispatched, OrderConfirmed",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r997890879",
   "type": "rectangle",
   "x": 880,
   "y": 280,
   "width": 500,
   "height": 100,
   "angle": 0,
   "strokeColor": "#999999",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 498043043,
   "versionNonce": 365598844,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t446844553",
   "type": "text",
   "x": 890,
   "y": 288,
   "width": 161.70000000000002,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 95432382,
   "versionNonce": 373075788,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Replay / fold on load",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Replay / fold on load",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t1725230125",
   "type": "text",
   "x": 890,
   "y": 308,
   "width": 278.3,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1295603805,
   "versionNonce": 1166210814,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "OrderState = reduce(events, OrderState::apply)",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "OrderState = reduce(events, OrderState::apply)",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1042835997",
   "type": "text",
   "x": 890,
   "y": 323,
   "width": 248.05,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 228537891,
   "versionNonce": 756690717,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ch.21's own sketch \u2014 no such class exists",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "ch.21's own sketch \u2014 no such class exists",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "r207305182",
   "type": "rectangle",
   "x": 880,
   "y": 430,
   "width": 500,
   "height": 120,
   "angle": 0,
   "strokeColor": "#999999",
   "backgroundColor": "#ffffff",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 3
   },
   "seed": 1143736489,
   "versionNonce": 708192407,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false
  },
  {
   "id": "t249017743",
   "type": "text",
   "x": 890,
   "y": 438,
   "width": 277.20000000000005,
   "height": 17.5,
   "angle": 0,
   "strokeColor": "#111111",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 540766686,
   "versionNonce": 430285521,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Current state = computed, not stored",
   "fontSize": 14,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Current state = computed, not stored",
   "lineHeight": 1.25,
   "baseline": 14
  },
  {
   "id": "t1541145700",
   "type": "text",
   "x": 890,
   "y": 458,
   "width": 223.85000000000002,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1306169531,
   "versionNonce": 379529760,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "no mutable row \u2014 rebuilt from genesis",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "no mutable row \u2014 rebuilt from genesis",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t67403936",
   "type": "text",
   "x": 890,
   "y": 473,
   "width": 187.55,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 429771964,
   "versionNonce": 1910730709,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "or last snapshot, on every read",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "or last snapshot, on every read",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "a1129802776",
   "type": "arrow",
   "x": 390.0,
   "y": 230.0,
   "width": 0.0,
   "height": 50.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 1425715097,
   "versionNonce": 1688047308,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     50.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "t442913937",
   "type": "text",
   "x": 390.0,
   "y": 241.0,
   "width": 169.4,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1134296348,
   "versionNonce": 1945102619,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "outbox row, same transaction",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "outbox row, same transaction",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "a1711380168",
   "type": "arrow",
   "x": 390.0,
   "y": 380.0,
   "width": 0.0,
   "height": 50.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 886418563,
   "versionNonce": 1865334568,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     50.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "t1306745351",
   "type": "text",
   "x": 390.0,
   "y": 391.0,
   "width": 108.9,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1368342093,
   "versionNonce": 292669156,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "idempotent consume",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "idempotent consume",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "a407062846",
   "type": "arrow",
   "x": 1130.0,
   "y": 230.0,
   "width": 0.0,
   "height": 50.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 1520340900,
   "versionNonce": 521389536,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     50.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "t29001685",
   "type": "text",
   "x": 1130.0,
   "y": 241.0,
   "width": 127.05000000000001,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 555745601,
   "versionNonce": 1028177676,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "replay (illustrative)",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "replay (illustrative)",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "a843877615",
   "type": "arrow",
   "x": 1130.0,
   "y": 380.0,
   "width": 0.0,
   "height": 50.0,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 2,
   "strokeStyle": "dashed",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": {
    "type": 2
   },
   "seed": 1213699023,
   "versionNonce": 1157238674,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "points": [
    [
     0,
     0
    ],
    [
     0.0,
     50.0
    ]
   ],
   "lastCommittedPoint": null,
   "startBinding": null,
   "endBinding": null,
   "startArrowhead": null,
   "endArrowhead": "arrow"
  },
  {
   "id": "t822425856",
   "type": "text",
   "x": 1130.0,
   "y": 391.0,
   "width": 90.75000000000001,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 684678356,
   "versionNonce": 660614588,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "compute on read",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "compute on read",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1886390931",
   "type": "text",
   "x": 780.0,
   "y": 22,
   "width": 783.2,
   "height": 20.0,
   "angle": 0,
   "strokeColor": "#1d1d1d",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1273271986,
   "versionNonce": 455468851,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "ch.21 \u2014 CQRS-lite (what this book builds) vs. full event sourcing (illustrative contrast)",
   "fontSize": 16,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "ch.21 \u2014 CQRS-lite (what this book builds) vs. full event sourcing (illustrative contrast)",
   "lineHeight": 1.25,
   "baseline": 16
  },
  {
   "id": "t1061511796",
   "type": "text",
   "x": 140,
   "y": 560,
   "width": 671.5500000000001,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 897464523,
   "versionNonce": 327454839,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "System of record: the orders table. Rebuildable from order.placed only as far as the topic's retention reaches.",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "System of record: the orders table. Rebuildable from order.placed only as far as the topic's retention reaches.",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t266719196",
   "type": "text",
   "x": 140,
   "y": 576,
   "width": 605.0,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 263824491,
   "versionNonce": 323851324,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Past that window, the write side's own durable storage \u2014 not the log \u2014 is what the system relies on.",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Past that window, the write side's own durable storage \u2014 not the log \u2014 is what the system relies on.",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t939689481",
   "type": "text",
   "x": 880,
   "y": 560,
   "width": 732.0500000000001,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 210722647,
   "versionNonce": 578152937,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "System of record: the log itself \u2014 current state is derived, never stored directly. The log is the only copy of the fact.",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "System of record: the log itself \u2014 current state is derived, never stored directly. The log is the only copy of the fact.",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t949891928",
   "type": "text",
   "x": 880,
   "y": 576,
   "width": 780.45,
   "height": 13.75,
   "angle": 0,
   "strokeColor": "#555555",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 1491978777,
   "versionNonce": 957280506,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Real costs this book declines to pay here: schema evolution forever (upcasting), a snapshot strategy, team/tooling unfamiliarity.",
   "fontSize": 11,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Real costs this book declines to pay here: schema evolution forever (upcasting), a snapshot strategy, team/tooling unfamiliarity.",
   "lineHeight": 1.25,
   "baseline": 11
  },
  {
   "id": "t1573484906",
   "type": "text",
   "x": 20,
   "y": 640,
   "width": 907.5000000000001,
   "height": 12.5,
   "angle": 0,
   "strokeColor": "#777777",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 206862413,
   "versionNonce": 1606402374,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Sourced from _docs/21-event-sourcing-and-cqrs.md (\"Event sourcing: when the log stops being a side effect\", \"Why this book builds CQRS-lite and not event sourcing\").",
   "fontSize": 10,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Sourced from _docs/21-event-sourcing-and-cqrs.md (\"Event sourcing: when the log stops being a side effect\", \"Why this book builds CQRS-lite and not event sourcing\").",
   "lineHeight": 1.25,
   "baseline": 10
  },
  {
   "id": "t457658326",
   "type": "text",
   "x": 20,
   "y": 656,
   "width": 984.5000000000001,
   "height": 12.5,
   "angle": 0,
   "strokeColor": "#777777",
   "backgroundColor": "transparent",
   "fillStyle": "solid",
   "strokeWidth": 1,
   "strokeStyle": "solid",
   "roughness": 1,
   "opacity": 100,
   "groupIds": [],
   "frameId": null,
   "roundness": null,
   "seed": 736967339,
   "versionNonce": 15331074,
   "isDeleted": false,
   "boundElements": [],
   "updated": 1,
   "link": null,
   "locked": false,
   "text": "Left: examples/03-notification-service/.../{Notification,NotificationService}.java (verified, ch.17). Right: illustrative only \u2014 no event store exists in this codebase, by design.",
   "fontSize": 10,
   "fontFamily": 1,
   "textAlign": "left",
   "verticalAlign": "top",
   "containerId": null,
   "originalText": "Left: examples/03-notification-service/.../{Notification,NotificationService}.java (verified, ch.17). Right: illustrative only \u2014 no event store exists in this codebase, by design.",
   "lineHeight": 1.25,
   "baseline": 10
  }
 ],
 "appState": {
  "viewBackgroundColor": "#ffffff",
  "gridSize": null
 },
 "files": {}
}