Ok I think this one is solved, largely by Postgres SQL Persistence - should events be publishable to two consumers which use the same DB?
I’ll lay out what the setup is, in case it helps anybody in the future.
Web API
- Outbox enabled
- PostgreSql Transport with
TransportTransactionMode.ReceiveOnly
- (Postgre)Sql persistence with Transactional Session enabled
Saga Service / Domain Service
- Outbox enabled
- PostgreSql Transport with
TransportTransactionMode.ReceiveOnly
- (Postgre)Sql persistence (no Transactional Session enabled as not required)