October 2018
Intermediate to advanced
556 pages
15h 18m
English
Let's look back for a second and analyze what functions distributed transactions play in a software system. It is evident that we use distributed transactions to be sure about the system state, or in other words, we eliminate the uncertainty that some state across the system may be inconsistent. However, this elimination of uncertainty is a very restrictive demand. Vaughn Vernon, the author of Implementing Domain-Driven Design, proposes to embed uncertainty into the domain model. According to him, if it is tough to protect the system from inconsistent state and inconsistency still occurs no matter how hard we fight against it, it may be beneficial to accept the uncertainty and embed it as part of a regular business workflow. ...