Sagas 拥有 ACD 特性
原子性、一致性、持久性
缺失隔离性
Commutative updates
e.g. debit account can compensate for a credit account
Version file (版本文件)
Record history of changes (记录变化历史)
Use them to make updates commutative
e.g. record cancel reservation(记录 取消 预定) so that create/cancel = cancel/ create
Sounds suspiciously like event sourcing