4 ms·
Show HN: Open-Source Webhooks Gateway for Platform Engineers
Hey Friends,
Convoy is an open-source webhooks gateway. Webhooks continue to be hard at scale, and large teams require consistent tooling for inbound & outbound webhooks. Convoy enables developers to securely send, receive and manage millions of webhooks reliably with features like retries, rate limiting, circuit breaking, customer-facing webhook logs, zero downtime secrets rotation and more.
Since our initial launch [0], we've learned a lot about our users and made several important improvements we are excited to share:
- We are now a webhooks gateway! Akin to API Gateways that sit at the edge of your network to receive all API traffic and route them to the respective microservice, webhooks gateways sit at the edge of your network to receive webhooks from any backend service and route to client endpoints as well as ingest events from multiple providers and route them to the required backend services.
- We now have first-class integration with Pub/Sub Systems. Our users wanted increased deliverability guarantees. Your backend services write events to a queue/topic etc. Convoy consumes the queues, creates webhook events and dispatches those reliably to client endpoints. We currently support Amazon SQS and Google PubSub. On our roadmap, we have the following planned - Kafka, RabbitMQ & Nats (In that order)
- We switched our backend store to PostgreSQL. This improves the self-hosted experience tremendously. MongoDB was great for storing schemaless data, but was severely lacking in some important features for our users, e.g. transactions don't work on a single node; you need to bootstrap a replica set; also, we wanted to ship updates frequently, but the lack of migrations for schema & data changes slowed us down.
- We decided to go the open-core route of OSS monetisation because it offered us a good balance to serve our community and make enough money to run the company. Like GitLab, we hope to be good stewards of our community edition. Since our enterprise edition is simply a wrapper around the community edition with enterprise features like RBAC, Audit Logs etc., we are properly incentivised to continue making it excellent.
- Our Cloud platform is in the private alpha stage. Please contact us at founders@getconvoy.io to gain access!
Our mission is to serve hobbyist developers all the way to the most ambitious teams on the planet with a consistent and easy-to-use webhooks gateway for asynchronous communication on the internet.
We welcome you to try it out using our getting started at https://github.com/frain-dev/convoy#installation-getting-started https://github.com/frain-dev/convoy#installation-getting-sta.... Share with us your webhook horror stories and give us feedback.
[0]: https://news.ycombinator.com/item?id=30469078 https://news.ycombinator.com/item?id=30469078
- toomuchtodo 4y agoHello! Love it (webhooks are traditionally an unloved but crucial system component)! How would you say you compare to and differentiate from https://svix.com https://svix.com? Edit: Thank you for the reply! Wishing you much success.
- subomi 4y agoThanks! While we are pretty similar, several differences still exist today. - Convoy is fully open-source, including our UI, adding multiple users, creating multiple projects, debugging & managing events. Svix has only its dispatcher open-source without a UI. - Convoy directly integrates with PubSub systems like Amazon SQS & Google PubSub to ingest webhook events. Svix can only ingest events via a REST API. - Convoy has features to send and receive webhooks. Svix has features to send webhooks only. - Convoy is written in Golang, Svix is written in Rust. :)
- avinassh 4y agoThis looks great! I will give it a spin > e.g. transactions don't work on a single node any Mongo has this restriction
- subomi 4y agoYup, it sucked! Users had to spin up a replica set all the time. Wasn't fun.
- avinassh 4y agowanted to type: any reason* Mongo has this restriction
- rtukpe 4y agoI don't know tbh. According a post on the MongoDB community forum Transactions are built on concepts of logical sessions they require features which are only available in replica set environment. You can see more here [0] [0] https://www.mongodb.com/community/forums/t/why-replica-set-is-mandatory-for-transactions-in-mongodb/9533/2 https://www.mongodb.com/community/forums/t/why-replica-set-i...