Give every state a meaning
A state should describe something precise enough that your team knows what actions are allowed. “Pending” needs context: pending payment, confirmation, or another decision?
Model the exceptions too
The completed path is only one possibility. Cancellations, refunds, disputes, and failed provider operations need explicit handling so records remain understandable.
Preserve the reason for a change
Knowing the current state is useful; knowing which event caused it can help explain how the transaction got there. Plan the information needed for that history deliberately.
Explore the underlying concepts.
For more technical context, read AWS: Event sourcing pattern ↗. This link is a reference, not a statement of partnership or integration. This introduction is not a complete implementation guide or advice about regulated financial services.