- From: Gregory Terzian <notifications@github.com>
- Date: Sun, 04 Jan 2026 21:53:48 -0800
- To: w3c/IndexedDB <IndexedDB@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/IndexedDB/pull/484@github.com>
This PR comes out of the blue, but I think it could be useful.
It adds a TLA+ spec for what I think is the core concurrent part of the spec: the transaction and connection lifecycle.
As background: I am involved in the efforts at Servo to implement the latest spec, and I found how the above is specified to be quite ambiguous at first. Once you've internalized the spec and thought about it, I think it all makes sense, but the benefit of expressing this in TLA+ is that it abstracts away everything else and provides you with an unambiguous description of the concurrent part that a machine can check.
Note sure how to integrate this in the actual spec; maybe via a note and a link to the file in the repo?
For your consideration.
You can view, comment on, or merge this pull request online at:
https://github.com/w3c/IndexedDB/pull/484
-- Commit Summary --
* add tla+ spec for transaction lifecycle
* second pass on spec
* third pass: add invariant for request only processed when can start
* remove tabs
* remove redundant pre-conditions; add docs
* simply start and finish of open
* fix deadlock in open flow following simplification
* track request processing with just a boolean
* fix transaction ordering
* add rejecting of open
* revert version change on abort
* add invariant for overlapping started transactions
* group invariants together
* bound connection queue
* fix autocommit
* fix docs
-- File Changes --
M .gitignore (3)
A transaction_lifecycle.cfg (16)
A transaction_lifecycle.tla (423)
-- Patch Links --
https://github.com/w3c/IndexedDB/pull/484.patch
https://github.com/w3c/IndexedDB/pull/484.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/pull/484
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/IndexedDB/pull/484@github.com>
Received on Monday, 5 January 2026 05:53:51 UTC