ADR-014: transactional outbox enqueue — outbox_enqueue_tx on TxHandle (OQ-13 resolved)
This commit is contained in:
1 parent
d401908f13
commit
04a04651dc
8 files changed
+359
-122
No files matched your search
@@ -64,13 +64,17 @@ implement identically):
|
||||
and `release`.
|
||||
- outbox helper — `outbox(name)` with `enqueue` + `run_once` delivery
|
||||
worker. *(Depth annotation 2026-10-05: the transactional *enqueue*
|
||||
shape on the `TxHandle` seam is OQ-13's — the v1 method list has no
|
||||
outbox enqueue method and the derived backing queue's reserved
|
||||
prefix makes plain `enqueue_tx` illegal; see
|
||||
[open-questions.md](../open-questions.md). `run_once` worker
|
||||
semantics are pinned in core-contract.md's outbox section.)*
|
||||
shape was OQ-13's — this §1/§2 method list had no outbox enqueue
|
||||
method and the derived backing queue's reserved prefix made plain
|
||||
`enqueue_tx` illegal; resolved by
|
||||
[ADR-014](014-outbox-tx-enqueue.md) — `outbox_enqueue_tx` joins the
|
||||
`TxHandle` trait. `run_once` worker semantics are pinned in
|
||||
core-contract.md's outbox section.)*
|
||||
- the tx seam — `begin_tx` / commit / rollback and the `*_tx` methods
|
||||
([ADR-007](007-transactional-seam.md)).
|
||||
([ADR-007](007-transactional-seam.md)). *(Amended 2026-10-05 by
|
||||
[ADR-014](014-outbox-tx-enqueue.md):
|
||||
`outbox_enqueue_tx(outbox, opts, payload)` added to the
|
||||
`TxHandle` trait.)*
|
||||
- `subscribe(consumer) -> Box<dyn EventReceiver>` — the durable
|
||||
stream subscription handle, delivering `StreamEvent`s with an
|
||||
explicit `save_offset` on the receiver (no auto-checkpoint;
|
||||
@@ -113,6 +117,7 @@ trait TxHandle {
|
||||
publish_tx(stream, payload) -> event_id
|
||||
notify_tx(channel, payload)
|
||||
save_offset_tx(stream, consumer, offset)
|
||||
outbox_enqueue_tx(outbox, opts, payload) -> job_id // ADR-014
|
||||
commit(self: Box<Self>) -> Result<()> // or rollback
|
||||
}
|
||||
```
|
||||
@@ -195,7 +200,8 @@ struct Wake { channel: String }
|
||||
- **Reserved prefix: `__alkstore_`** (leading double underscore). The
|
||||
namespace exists per [ADR-006](006-wake-and-delivery-contract.md);
|
||||
this pins its string. Engine-independent — applies to channel,
|
||||
stream, queue, and lock names on every engine.
|
||||
stream, queue, lock, and outbox names on every engine *(outbox names
|
||||
added to the kinds list by [ADR-014](014-outbox-tx-enqueue.md))*.
|
||||
- **The one v1-reserved string:**
|
||||
`__alkstore_listener_reconnected__` — the Postgres forwarder's
|
||||
synthetic reconnect-wake channel ([ADR-004](004-postgres-driver.md)).
|
||||
|
||||
Reference in new issue
Block a user