Why opaque checkpoints on the plane?

Framework checkpointers that require direct Postgres make the control plane’s backend choice a lie.

Decision

The plane stores opaque bytes keyed by tenant/thread. Runners serialize; the plane never parses framework internals. An HTTP proxy with CAS/ETag keeps multi-replica writers honest.

Consequences

Rejected alternatives

See architecture.md and runner-protocol.