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

Add distributed queue module #56

Open
cjbrooks12 opened this issue Oct 3, 2023 · 0 comments
Open

Add distributed queue module #56

cjbrooks12 opened this issue Oct 3, 2023 · 0 comments
Labels
hacktoberfest Help is wanted for Hacktoberfest

Comments

@cjbrooks12
Copy link
Member

cjbrooks12 commented Oct 3, 2023

Another server-side use case is a background queue, such as AWS SQS. This module could allow the Ballast API to run on top of a persistent job queue like SQS or a database table, implemented as an Input strategy. This feature partly inspired by Laravel Queues.

Inputs sent to the VM would be automatically serialized and placed into the queue. Any other distributed server could then read from the queue, deserialize the input, and then process it.

A first POC should disable the use of State through the use of a custom InputStrategy Guardian. This would effectively make a Ballast distributed queue a purely Stateless queue. Future work could add some way to store and rehydrate state for each Input pulled from the queue, which would allow it to process longer distributed "user journeys".

Further extensions could support specific types of common Java server-side queues, like sending transactional emails, SMS messages, or push notifications.

Open questions are mostly the same as with the Scheduler.

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

No branches or pull requests

1 participant