Status

Orders and Transactions both have their own lifecycles. Whilst they are related, orders may not necessarily be completed when the payment is completed. Using a delivery example; An order is not completed until it leaves with a driver, but the transaction for the payment may be completed prior to this. Alternatively, for ordering a coffee at a cafe, the order is completed at the same time the payment is completed.

The status field is used in both Transactions and Orders so that we can control state. Both need to follow the set Communication Flowstatus and Version Hashes are how we achieve this.