Transaction states
Explicit states distinguish pending, successful, failed, and unknown outcomes.
What it is
Explicit states distinguish pending, successful, failed, and unknown outcomes.
When to use it
Represent financial lifecycle and allowed transitions.
Syntax
pending -> settled | failed
unknown -> settled | failed (after confirmation)Example
UPDATE transactions SET status = 'settled'
WHERE id = ? AND status = 'pending';
-- Check exactly one row changed and record the transition atomically.Common mistakes
A timeout does not prove failure; enums alone do not enforce transitions.