Eventuate Tram

The Eventuate Tram platform implements different solutions for saga management, all of which have been built using the Eventuate platform. The main idea is sending messages as a part of a database transaction; in this way, you can atomically update the state and send a message or a domain event, maintaining data consistency.

The architecture of the Eventuate Tram application, taken from the example that's available at https://bit.ly/2UtmFp4

In the figure observed, you can see two different services: Todo Service and Todo View Service. The first one implements functionalities related to the change of the state of the domain (insert, update, and delete) and, after one of these, publishes an event that will be stored in the MESSAGE table in a traditional, ACID-transaction way.

The Eventuate Tram CDC service tracks inserts into the MESSAGE table, usually using the database log, as a sort of change data capture, and publishes messages to a distributed topic using Apache Kafka.

Finally, the Todo View Service subscribes to the events and updates ElasticSearch, in order to retrieve the last version of the data.

As you can see, the overall architecture merges the benefits of saga orchestration and the CQRS pattern.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset