Pattern: Transaction log tailing §
pattern transactional messaging inter-service communicationContext §
You have applied the Transactional Outbox pattern.
Problem §
How to publish messages/events into the outbox in the database to the message broker?
Forces §
Solution §
Tail the database transaction log and publish each message/event inserted into the outbox to the message broker.
The mechanism for trailing the transaction log depends on the database:
- MySQL binlog
- Postgres WAL
- AWS DynamoDB table streams
Example §
- Eventuate Tram framework implements transaction log tailing.
Resulting context §
This pattern has the following benefits:
- No 2PC
- Guaranteed to be accurate
This pattern has the following drawbacks:
- Relatively obscure although becoming increasing common
- Requires database specific solutions
- Tricky to avoid duplicate publishing
Related patterns §
- The Transactional Outbox pattern creates the need for this pattern
- The Polling publisher pattern is an alternative solution
Learn more §
- My book Microservices patterns describes this pattern in a lot more detail.
- The Eventuate Tram framework implements this pattern