Skip to content

Add adapter-backed transactions - #102

Draft
KidkArolis wants to merge 1 commit into
masterfrom
codex/adapter-backed-transactions
Draft

Add adapter-backed transactions#102
KidkArolis wants to merge 1 commit into
masterfrom
codex/adapter-backed-transactions

Conversation

@KidkArolis

Copy link
Copy Markdown
Collaborator

What changed

  • add an optional atomic transaction capability to the adapter contract
  • add a schema-typed figbird.transaction(tx => ...) CRUD collector with optimistic and confirmed operations
  • coordinate transaction dispatch with Figbird's per-record mutation lanes, grouping optimistic projection, commit, and rollback notifications across services
  • add feathersBatchTransactions() for the existing api/batch tuple/result contract
  • document the API, constraints, and Feathers setup; export the new public types and helpers

Why

Mutation queues preserve ordering but do not provide server atomicity. Multi-service features such as moving a card while updating column counters need an explicit all-or-nothing backend capability. This API only exists when the adapter supplies that guarantee and never labels sequential requests as a transaction.

User impact

Apps with an atomic batch endpoint can express multi-service writes through the same schema-typed Figbird DSL. Optimistic changes appear together and roll back together on failure. Existing adapters and mutation APIs are unchanged; transaction support is opt-in.

Validation

  • npm run tsc
  • npm run lint
  • npm run ava — 349 tests passed
  • npm run test — full type, lint, format, coverage, and test suite passed
  • npm run build

@KidkArolis
KidkArolis force-pushed the codex/adapter-backed-transactions branch from cbfaacd to 95a6dc0 Compare August 15, 2026 17:27
@KidkArolis
KidkArolis force-pushed the codex/adapter-backed-transactions branch from 95a6dc0 to 67fffd0 Compare August 15, 2026 17:58
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