BEGIN IMMEDIATE and a unique constraint across processes
rather than merely across threads. Postgres is for many hosts, and that is the whole of the
decision: choose by how many machines write to the store, not by how serious you are.
What this section answers
Where it stands
- Version 0.6.0, on PyPI, Python 3.11 and later.
- 3,939 tests, every version specified before it was written and every requirement mutation-tested. Read more.
- 11 guarantees you can check in your own setup, with
ctrlrun verifyagainst your policy, on your store’s backend, in a scratch store it creates. Read more. - One host: a file. SQLite, no server, no ops. Many hosts: Postgres, the same guarantees, graded by the same suite. Read more.
- Soaked for 20m 0s on postgres: 889,735 actions, 0 unattributed ambiguous outcomes, positive control fired. The roadmap asks for a week; that is not met. Read more.
- Each receipt carries the hash of the one before it, so an alteration is detected and named. Read more.
- Apache-2.0, and the enforcement kernel stays open source. Releases carry PyPI provenance attestations from GitHub Actions.
- No soak of the length the roadmap asks for. (the criterion is a week of calendar time; the published run is 20m 0s)
- No external security audit. (planned for v0.8 or v0.9)
- No third-party review of the kernel. (every review so far was run inside this project)
- No sector packs. (the policy templates are starting points, not a product)
The shape of a deployment
What this does not do
- It does not run anything for you. There is no daemon, no scheduler and no background thread. Nothing sweeps expired leases, nothing retries on your behalf, and a restarted process repairs nothing. See recovery for why that is deliberate.
- It does not make an external system idempotent. CTRLRun refuses to knowingly act twice. Whether the remote acted is a fact only the remote holds.
- It does not roll anything back. It is not a transaction manager and it never pretends a remote write is undone.
- It is not a dashboard. Receipts are portable JSON;
ctrlrun effects,inspect,receiptsandstatsare the interface, and an OpenTelemetry exporter is the extra.
T141 and T154 — the three shipped stores run the same store conformance
suite, every case a pass or a named not-applicable — and by ctrlrun verify, which grades G1
through G11 against your policy, on your store’s backend, in a scratch store it creates
and destroys. It never opens the store you run on.
Next
- SQLite or Postgres: the choice, and what each one costs.
- How reservation works: the lost
COMMIT, in two rows. - Get started · Why.