Open
Description
As part of your business logic, you often need to create/update/delete your local data store and simultaneously send messages/events to a message broker. Furthermore you need to guarantee the atomicity of both operations (e.g. the message can be sent only if the database transaction is successful). The (2PC) is not a scalable and often not supported option for most distributed systems.
The outbox pattern provides an approach for letting services execute these two operations in a safe and consistent manner.
Spring Integration can provide common utilities to facilitate the creation and management of Outbox table and entities as well as common outbox messaging abstraction.
References: