The Graph Changed While the Approval Was Waiting

Treat approvals and snapshot checks as preparation, then use authorised, parameterised transactions with explicit conflict and retry behaviour.

14 sections · 4 questions · 1 coding challenge

1 / 14

Connected Updates Needed a Transaction Boundary

BOTIE

A graph update can change an entity and several attached relationships together. Transaction support provides a boundary within which the database either commits the unit of work or rolls it back. Modern Neo4j drivers also retry selected transient failures, which makes the behaviour of the transaction function part of the application’s correctness.

The maintenance approval adds another boundary: a person approves a particular action against particular evidence. Rechecking that evidence at commit time prevents an old approval from silently becoming authority for a materially different state.

Sources for this history