Using the Outbox pattern we treat Integration Events as Entities in our database and persist them when the parent transaction that produced them is committed (1). This way we ensure that the Integration Events are always persisted if the transaction succeeds and not persisted if it fails.
A separate service is created to read queued Integration Events from the database (2) and publish them via a Message Broker (3). When the Integration Event is successfully published it is removed from the database. If the Message Broker is down then the service will keep trying to publish the events until it is back online.
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded people’s learning.