-
The author says the outbox pattern should "always" be used.
I agree with the goal -- one should definitely never publish an event externally before it is committed to DB! But I think using a "post-commit sequence number" is even more powerful than the outbox pattern.
Sadly few DBs seems to supoort this well with low latency. CosmosDB has great support for a post commit low latency change feed
A hack for mssql is here:
https://github.com/vippsas/mssql-changefeed/blob/main/MOTIVA...
More about this way of publishing events:
https://github.com/vippsas/zeroeventhub
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Interesting approach, I use a very similar methodology in Marmot (https://github.com/maxpert/marmot) to do CDC for SQLite via triggers, and then these changes are published over NATS, replicated over to other nodes. So row-level replication powered by similar outbox except it uses NATS and JetStreams's quorum property to ensure reliable recovery.
-
The author says the outbox pattern should "always" be used.
I agree with the goal -- one should definitely never publish an event externally before it is committed to DB! But I think using a "post-commit sequence number" is even more powerful than the outbox pattern.
Sadly few DBs seems to supoort this well with low latency. CosmosDB has great support for a post commit low latency change feed
A hack for mssql is here:
https://github.com/vippsas/mssql-changefeed/blob/main/MOTIVA...
More about this way of publishing events:
https://github.com/vippsas/zeroeventhub
-
-