Skip to content

Remove test-side contention from DDL sync ordering checks - #1

Merged
lucidprogrammer merged 6 commits into
mainfrom
novel-flow
Apr 3, 2026
Merged

Remove test-side contention from DDL sync ordering checks#1
lucidprogrammer merged 6 commits into
mainfrom
novel-flow

Conversation

@lucidprogrammer

Copy link
Copy Markdown
Contributor

No description provided.

@lucidprogrammer
lucidprogrammer merged commit 61e2bf3 into main Apr 3, 2026
13 checks passed
lucidprogrammer added a commit that referenced this pull request Jul 7, 2026
Seven append-only tables + idempotent schema install; job state computed
from rows (never stored); claim-by-push with push-reply attribution; lease
expiry/retry/failure/cancellation; capability registry with tag-subset
matching over an open vocabulary; worker poll-loop library helper; movement
policy enforced at claim and at input read; per-node input retention (the
single DELETE in the workflow).

The distributed contract is the per-table conflict policies: claims,
results, and cancellations are hub-refereed (server-wins: first row to the
hub stands, later writers get an attributed conflict in the push reply, a
losing edge's local row reconciles to the hub's on pull); jobs, failures,
inputs, and capabilities are single-writer-per-key (insert-if-not-exists).
These policies are baked at the two chokepoints - SyncServer's shared
constructor and SyncClient::pull - so no hub or caller construction can
arbitrate a work table incorrectly (the shipped binaries construct
uniform-LatestWins hubs, which would let a SECOND claim evict the first).

This resolves the seed's open question #1 with no engine change: the
ServerWins arm already attributes skips by natural key, so the predicted
InsertIfNotExists-arm fix is unnecessary - and the policy choice also heals
the losing claimant's local ledger, which insert-if-not-exists could not.

Engine suite 12/12, server suite over the in-process fake 11/11, no Docker,
no live endpoints. Plus examples/work_fabric_demo.rs, the owner smoke's
demo caller.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant