Transaction log tailling

Context

You have applied the [[Transactional Outbox]] pattern.

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

  • The [[Transactional Outbox]] pattern creates the need for this pattern

  • The [[Polling publisher]] pattern is an alternative solution

Learn more

Last updated