frontend-patterns/technologies/TransactionalRecovery.md
tegwick 53bb65e7a6 Complete the bounded language 0.1 research preview
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3
2026-09-27 11:49:48 +02:00

2 KiB
Raw Permalink Blame History

Transactional recovery: mechanism mappings

0.1 research preview. These map previously reviewed mechanisms to candidate decisions, not complete, interchangeable product implementations. No new source verification was performed for this mapping; dates and revisions are those in the linked reviews. Transactional sequence.

Decision Located mechanism and provenance What still needs verification
CAND-0005 — retain unfinished intent Zulip and Element composer draft paths, pinned source R01/R03 in FrontendRecoveryImplementations Complete base/draft/current merge, retention policy, restart and composer-to-operation handoff
CAND-0006 — reject a stale proposal Kubernetes conditional PUT, T01 in TransactionalEvidenceExpansion; GitLab optional file precondition T02 has different failure semantics Actual endpoint atomicity and domain checks; do not treat every GitLab 400 as version rejection
CAND-0007 — resolve uncertain outcome Stripe bounded replay identity T03; Element/Matrix echo/retry source R04–R06; Matrix SDK observation uses synthetic transport Receiver retention/identity scope, lookup, true server deduplication, cancellation/compensation; these mechanisms are not one assembled stack
CAND-0008 — refresh after acceptance React Router revalidation and concurrency guidance T04/T05 in the transactional review Read-after-write, obsolescence and preserved drafts in the actual application; client cancellation does not stop server effects

Select a mechanism only after the application's acceptance and failure contracts are known. These examples do not require Kubernetes, Stripe or a particular UI framework; they illustrate different obligations. Combining them is a proposed design, not a known deployed use. Full-contract recurrence remains unassessed.