What is the Saga pattern?
If you ever did application development on a monolithic or an N-Tier system, you are probably familiar with the concept of a transaction. This is where the application wants to do a Create, Read, Update, or Delete (CRUD) type transaction on a database or multiple databases. It needs to do this consistently across all participating databases. A transaction manager was typically used. It ensured that the transaction as a whole either happened or didn’t happen. The term to refer to this is an ACID transaction. Let’s look at what the ACID acronym stands for:
- Atomicity: Either the entire transaction happens or does not. There is no in-between state.
- Consistency: The data being affected by the transaction is in a consistent state both when the transaction starts and when it ends.
- Isolation: When a transaction is in progress, the state of the transaction is invisible to other transactions that might be running.
- Durability: After...