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

Full Message Broker Support #443

Closed
drn opened this issue Nov 15, 2017 · 5 comments
Closed

Full Message Broker Support #443

drn opened this issue Nov 15, 2017 · 5 comments

Comments

@drn
Copy link

drn commented Nov 15, 2017

I'm currently in the process of evaluating message brokers for my company. We're specifically looking for a hosted solution, so we've settled on SNS/SQS over RabbitMQ / Kafka / etc. Looking at the current landscape of SNS/SQS pub-sub libraries for ruby, a few came up but none are very mature. https://github.com/iHiD/propono came up with great a publish API but unfortunately doesn't support an ActiveJob compatible message processing interface. That said, Shoryuken looks like a great option for message processing.

I am planning on building a lightweight pub-sub (message fan-out) library leveraging Shoryuken for message processing. I can either build it as an independent gem or integrate it directly with Shoryuken. Would your team consider merging something like this in or should I develop it separately? If it would be considered, my plan is to implement it without introducing any new dependencies and have it be an entirely optional feature.

Thoughts?

Semi-related issue - #367

@phstc
Copy link
Collaborator

phstc commented Nov 15, 2017

Hi @drn

A few releases ago Shoryuken had support for basic SNS operations, but I removed it for keeping Shoryuken simpler, since not everybody use SNS, and most importantly because AWS SDK has a great support for SNS, it's not like SQS, which for consuming messages, it's most likely users want a process running, threads etc.

Do you have a specific need on SNS that the AWS SDK does not handle well?

@drn
Copy link
Author

drn commented Nov 16, 2017

Hey @phstc - thanks for the quick response.

I was mainly looking for an equivalent for https://github.com/ruby-amqp/bunny but for AWS SNS/SQS. The AWS SDKs are great, but they require a good amount of boiler plate code which I don't want my team to have to write every time they want to publish a message or subscribe a queue to a topic.

Given I needed something ASAP, I threw together this gem that handles the use case I am looking to solve -
https://github.com/Thanx/aws-broker. I linked to this gem if you don't mind! This is the boilerplate logic I mentioned - https://github.com/Thanx/aws-broker/blob/master/lib/aws/broker/subscriber.rb#L12

Anyway, let me know if you'd to integrate some of that logic. I have some ideas. Otherwise, no worries - I'll maintain it separately.

Thanks for providing this great message processor!

@phstc
Copy link
Collaborator

phstc commented Nov 16, 2017

@drn LGTM. How about CloudFormation for creating topics, subscriptions, policies etc? cfer has a nice DSL for CF. I would try to use CF as much as I could for provision resources in AWS. Change a policy in your code, then cfer converge and all ✨ magically gets updated.

linked to this gem if you don't mind!

Not at all. Thanks 🍻

Thanks for providing this great message processor!

❤️

@phstc phstc closed this as completed Nov 16, 2017
@kookster
Copy link
Contributor

@drn if this is useful, we made something similar to what you are describing:

https://github.com/PRX/announce/

@ryan-plated
Copy link

https://github.com/plated/maitredee For anybody interested in a bit more of a seamless integration with SNS

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