{ "version": 2, "id": "D11", "kind": "synthetic-chat", "origin": "synthetic", "actors": [ "Tess", "Gio", "Nan" ], "initialDocument": "", "steps": [ { "id": "m1", "kind": "say", "actor": "Tess", "text": "old accounts have `full_name`; new code wants `given_name` and `family_name`.", "to": "room" }, { "id": "m2", "kind": "say", "actor": "Gio", "text": "either a one-shot rename and backfill, or expand the schema, dual-write, backfill, then contract.", "to": "room" }, { "id": "m3", "kind": "say", "actor": "Nan", "text": "can we do the one-shot while traffic is quiet?", "to": "room" }, { "id": "m4", "kind": "say", "actor": "Gio", "text": "maybe, but workers can still write the old column for hours.", "to": "room" }, { "id": "c4", "kind": "checkpoint", "waitFor": "settled", "deadlineMs": 30000 }, { "id": "m5", "kind": "say", "actor": "Tess", "text": "expand/contract then. I don't want a deploy-order lottery.", "to": "room" }, { "id": "c5", "kind": "checkpoint", "waitFor": "settled", "deadlineMs": 30000 }, { "id": "m6", "kind": "say", "actor": "Nan", "text": "agreed, provided rollback keeps the old column until every worker moves.", "to": "room" }, { "id": "c6", "kind": "checkpoint", "waitFor": "settled", "deadlineMs": 30000 } ] }