-
Notifications
You must be signed in to change notification settings - Fork 40
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
Supporting load distribution across a cluster #258
Comments
The issue is that there are too many different messaging protocols, load balancers and service discovery mechanisms. I wouldn't want to introduce more. All the support is there to wire into yours, though. I'll outline how ours works, as an example. First, you need #260, so LGTM. Our load balancer (Nomad) gives each registered service its own DNS name, e.g. We define a REST endpoint like this:
Which takes a
Where Then create your own
Works solidly in production (in fact, once we put this live we ended up DOSing the DB with the volume before we tuned everything else 😊) |
@tsg21 - I've updated the README on my PR to provide more information on this: https://github.com/gruelbox/transaction-outbox/blob/fix-236/README.md#clustering |
This has now been merged so you should be good to give it a whirl 👍🏻 |
I will do that... |
We now use this in production backed by AWS SQS it and it works extremely reliably, with queues of over 50k items. I would in principle like to contribute the code to the project but it mashes together Spring and AWS SQS support. I think for it to fit into the modular structure of the project I would need to decouple the code from Spring, which would require a re-write. Is there any interest in this? |
Very interested indeed @tsg21 . |
Something you're likely to have time for, @tsg21 ? |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
The README states:
I do, in fact, have that exact requirement but I don't see how to achieve that with the
TransactionOutbox
API as it stands. How is it supported?I think you might argue that this functionality is outside the scope of this library, but transaction-outbox is very close to supporting this. All I think it needs is a way to
schedule
a work item for asynchronous processing by the background thread(s), and not immediate execution in a post-commit hook. This could be done by adding an extra flag toParameterizedScheduleBuilder
.Is this a feature you would consider adding? I might be able to spin up a PR if so.
The text was updated successfully, but these errors were encountered: