4 ms·
Show HN: A Node.js open source library to send transactional notifications
- hitgeek 9y agofrom the docs this looks like a really practical library. The testing and dev tools look great. whats the backstory for this library?
- bdav24 9y agoHi hitgeek, thanks for your comment. The backstory is quite simple, the initial plan was to make a saas api service, but we don't like cold calling so much, so it ended up as an open source project :)
- garysieling 9y agoAre there any well-tested Node.js libraries to do scheduling alongside something this? E.g., if I wanted to send the notifications once a week, etc.
- ezekg 9y agoI've used https://github.com/kelektiv/node-cron https://github.com/kelektiv/node-cron in the past, which could be run in the same process as the web app or in its own process. Works really well for recurring jobs.
- bdav24 9y agoYes thanks, using something like node-cron can resolve your problem.
- michaelmior 9y agoWhat is a "transactional" notification? This doesn't seem to be explained anywhere in the README.
- treehau5 9y agoA notification that is sent based on some trigger. I think the terminology comes from email marketing https://sendgrid.com/blog/marketing-email-vs-transactional-email-whats-difference/ https://sendgrid.com/blog/marketing-email-vs-transactional-e...
- michaelmior 9y agoThat's what I assumed, but it would be nice if that were made explicit.
- bdav24 9y agoThanks for the feedback. I added the word "transactional" to say that we can't send batches with the lib. Anyway it's not a hard limitation because you can always make a loop.
- michaelmior 9y agoI would really suggest clarifying what you mean somewhere then because I don't think anyone would interpret it that way.
- squaro 9y agofallback + round-robin : <3 Awesome idea. fallback : could be very usefull if you main provider is down round-robin : send more free emails using multiple providers
- marksomnian 9y agoThe logo looks like a recoloured Telegram logo [0]. I'd recommend you change it before this gets big to avoid trademark shenanigans. [0]: https://telegram.org https://telegram.org
- bdav24 9y agoWhich looks like http://fontawesome.io/icon/paper-plane/ http://fontawesome.io/icon/paper-plane/ I don't think our logo harms them in any way.
- richthegeek 9y agoWe just wrote something similar, using RabbitMQ (https://github.com/richthegeek/beatrix https://github.com/richthegeek/beatrix) as the main manager for things. Seems like retries and delays are not part of this, but I guess they are added easily enough to the individual queue system used. Any desire to build them into it? Retries should be easy enough if you're happy to modify the bodies, although delays are not so easy (we're using the 'delayed message exchange' plugin for Rabbit to do this currently). Maybe some built-in/example queue integrations (Rabbit, Redis, etc)? Also, it's not super clear to me how you might host the SMS/Push/email/whatever provider on a different process/system to the publisher? But it looks lovely and clean! Major props!
- bdav24 9y agoVery nice, queue integration examples are one of my next steps. I didn't include the queue inside the lib to give the choice to users, but I intended to write a few ones. Would you want code one? About the consumer, it's running on the same instance than the producer for more simplicity (but you can always run instances that only do consumer job).
- yashafromrussia 9y agoahh this looks awesome! will try it out. I love the fact that you can use any queue with this <3
- pan69 9y agoShameless plug here.. I've been working on a service that kinda solves a similar problem, called Postways [1]. Even though Postways also provides a unified API for sending email, SMS and mobile push, the main focus of Postways is actually on managing the message templates. When you work with a team where not everyone is a developer, updating the actual message text can be a major problem, especially when the message text is in source code or various different places. [1] https://www.postways.com https://www.postways.com