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

Way to use FIFO queues? #74

Open
bokmann opened this issue Aug 22, 2017 · 5 comments
Open

Way to use FIFO queues? #74

bokmann opened this issue Aug 22, 2017 · 5 comments
Assignees

Comments

@bokmann
Copy link

bokmann commented Aug 22, 2017

Amazon SQS supports FIFO queues:

https://aws.amazon.com/about-aws/whats-new/2016/11/amazon-sqs-introduces-fifo-queues-with-exactly-once-processing-and-lower-prices-for-standard-queues/

Any consideration given to supporting this?

My initial investigation of the code makes it seem like it would just require an update to the Fog-AWS dependency and some new options passed at queue creation time... but I'm not sure what I'd want the semantics of the setup to look like... is this something set on Propono.config before we publish to the queue? The actual creation of the queue is hidden from the usage of the api...

@iHiD
Copy link
Owner

iHiD commented Aug 22, 2017

Hey @bokmann. So we're close to publishing v2 (see the branch) which dispenses with Fog for the AWS gem. I'll look at the option of FIFO as part of that. Thanks! :)

@iHiD iHiD self-assigned this Aug 22, 2017
@dougal
Copy link
Collaborator

dougal commented Oct 19, 2017

Had a thought about this while looking into other queue attributes (issue for that to follow later). The SQS API enforces that all FIFO queues must end in .fifo. Perhaps then, if the name of the queue when publishing ends in .fifo, and the queue does not exist, then a FIFO queue is created.

Regular queues:

Propono::Client.new.listen('some-topic') { |message| puts "I just received: #{message}" }
Propono::Client.new.publish('some-topic', "The Best Message Ever")

FIFO queues:

Propono::Client.new.listen('some-topic.fifo') { |message| puts "I just received: #{message}" }
Propono::Client.new.publish('some-topic.fifo', "The Best Message Ever")

Assumes that the corrupt, slow, and failed queues are also created as FIFO queues, with appropriate names.

@iHiD
Copy link
Owner

iHiD commented Oct 19, 2017

That's a nice idea. I'd be up for that as an implementation.

@bokmann
Copy link
Author

bokmann commented Aug 16, 2018

So does this work yet? It looks like just giving the queue the right name or putting .fifo in the config’s queue_suffix might do this.

@prem-prakash
Copy link

It would be nice to have FIFO support

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

No branches or pull requests

4 participants