Run CreateDatabase.sql to create database structure before start application.
The most important thing for Modular Monolith is data consistency for workflows which implemented using several modules. There are many ways to achieve data consistency:
- Master branch used DbTransaction
- CommitableTransaction branch based on master and used CommitableTransaction instead of DbTransaction (diff)
- TransactionScope-Connection branch based on master and used TransactionScope instead of DbTransaction for data consistency (diff)
- TransactionScope-ConnectionString branch based on TransactionScope-Connection and used connection string instead of connection for DbContect creation (diff)
- Compensation branch based on TransactionScope-ConnectionString and used compensation instead of transactions (diff)
- StateMachime branch based on Compensation and used state machine instead of compensation (diff)