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

s12v/sns is abandoned, we need an alternative. #21

Closed
jameskbride opened this issue Dec 30, 2023 · 0 comments
Closed

s12v/sns is abandoned, we need an alternative. #21

jameskbride opened this issue Dec 30, 2023 · 0 comments

Comments

@jameskbride
Copy link
Owner

Hello, I want to start by saying that Sergey Novikov has done a fantastic job with the sns project. It's been invaluable as a testing tool, and many, many developers and organizations have benefited from the work done here. Kudos to you, and thanks for all of your efforts!

I started using sns about a year ago and I realized I needed a new feature, which was to be able to publish messages via SNS to AWS Lambda, as well as arm64 Docker support. I started looking into how to contribute to sns to add the feature and unfortunately it turned out to be a lot of work.

There has been a lot of drift in Akka and Camel (as well as in Scala); in order to add Lambda support I would've needed to update to at least Camel 3.2 (which is when AWS Lambda support was introduced), which would have in turn required bumps in the other camel-related dependencies for the other integrations. That would have in turn required a bump in akka-camel, which is now deprecated in favor of Alpakka, which would probably require a full rewrite at that point.

It also appears that the sns project has been abandoned. The last commit and the last release were five years ago, which is unfortunate as it still has a lot of users, and based on the issues logged over the last couple of years developers are still depending on it.

All of this is a long way of saying that I weighed the pros and cons of attempting these changes, including the fact that there hasn't been any activity or a release in years, and from my perspective the cons out-weighed the pros.

So on to plan B. In lieu of attempting to introduce a rewrite-inducing change into an apparently dead project I decided to re-implement the sns project on my own, which is this project, local-sns.

local-sns follows the same pattern that sns does of enabling developers run a local/fake instance of AWS SNS, and to persist a configuration file of topics and subscriptions, including a few extra bells and whistles, such as support for AWS Lambda, an arm64 Docker image, and basic subscription filtering. I'm planning on expanding the subscription filtering support, as well as implementing HTTP subscription confirmations in the near future.

At this point local-sns is a full replacement for sns and then some.

Again, huge thanks to Sergey for all the work they did with sns, and hopefully local-sns can continue to support the developer community in the same way.

Migrating from sns

Migration from sns should be straightforward, and your existing configuration file should work with minimal change. In fact, the only changes you should need to make are to update the subscription endpoints to be compliant with the associated camel component requirements.

Please report any issues you encounter, and PRs are welcome. Thanks and happy dev'ing!

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

1 participant