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