Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misg/outbox #91

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Misg/outbox #91

wants to merge 2 commits into from

Conversation

gmiserez
Copy link
Contributor

Adds a new Package that supports the Outbox Pattern.

  • Messages to consume get saved in a new collection outbox.messages
  • Handling the initial transaction that saves the message is the responsibility of the user of the package
  • The messages get consumed only once. A distributed semaphore is managed through special read/write preferences in MongoDb so that a message can get locked by one consuming application for a specified time (30 seconds by default). If the consuming application does not delete the message within that time, the message becomes available again for consumption.
  • Messages get consumed right away: consumers get triggered via ThreadChannel to consume new messages asap. If the consumers fail for some reason, then a background job (named Fallback job) will get the message eventually and consume it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant