{
  "version": 1,
  "title": "Proposal · idempotent reservation and outbox",
  "nodes": [
    {
      "id": "request",
      "label": "Request + key",
      "kind": "Servicio",
      "x": 60,
      "y": 260
    },
    {
      "id": "reserve",
      "label": "reserve()",
      "kind": "Librería / SDK",
      "x": 360,
      "y": 260
    },
    {
      "id": "reservation",
      "label": "reservations",
      "kind": "Base de datos",
      "x": 800,
      "y": 100,
      "groupId": "transaction"
    },
    {
      "id": "outbox",
      "label": "outbox",
      "kind": "Base de datos",
      "x": 800,
      "y": 440,
      "groupId": "transaction"
    }
  ],
  "edges": [
    {
      "id": "e0",
      "from": "request",
      "to": "reserve",
      "label": "validate / replay"
    },
    {
      "id": "e1",
      "from": "reserve",
      "to": "reservation",
      "label": "insert + compare"
    },
    {
      "id": "e2",
      "from": "reserve",
      "to": "outbox",
      "label": "insert once"
    }
  ],
  "groups": [
    {
      "id": "transaction",
      "label": "SQLite · one transaction",
      "type": "private",
      "x": 700,
      "y": 40,
      "width": 480,
      "height": 580
    }
  ]
}
