Webhooks are the easiest way to integrate your various business applications, but they can create challenges and complexity when you are scaling. If you’re an Ably user, you don’t have to worry about this. What’s more, with ‘Incoming Webhooks’ it is now easier than ever to receive messages from a 3rd party integration, with no risk of bottlenecks when you’re rapidly scaling.
The challenges of scaling realtime data flows across multiple applications using webhooks
When your end users interact with your business, they don’t think about system boundaries. They expect a seamless, almost instantaneous experience by default. To deliver that experience, data needs to move smoothly across various system applications. When a customer places a new order, the process spans across a few different systems, from ID to inventory, shipping, billing, etc. For the data exchange to happen efficiently, reliably and securely, these various services need to be seamlessly integrated.
Webhooks are the easiest and most widespread way to achieve integration between various applications, but using them comes with its own challenges, especially if you’re dealing with scaling realtime data streams:
- If you want your system to handle millions of event occurrences, your webhooks architecture must also be scalable, but not all applications are built to scale.
- If your systems are down for whatever reason, the webhooks won’t be able to deliver information to your system. You can use an external event messaging queue to ensure that no webhook events are lost if your systems are down, but this will add complexity as you will have to manage capacity, scaling, monitoring, for the messaging queue.
- Sudden increases in traffic, whether they are the result of a real-life event or of an accidental or malevolent DDos attack, can overwhelm your system if you haven’t provisioned for scaling in advance.
About Incoming Webhooks
Ably users can use the services they’re already working with, and add new ones, without having to worry about webhook bottlenecks and overwhelming their endpoints. Ably’s platform handles the buffering and load balancing as webhook traffic scales, and it allows for queuing and consuming high volumes of realtime messages in bulk, transforming or filtering messages by executing functions on them, or passing messages on to other systems for onward processing.
To make connectivity easier, Ably provides fully-managed third-party integrations and data processing pipelines, for receiving data from other systems or for pushing data to Ably. Incoming Webhooks is the easiest way to publish messages to Ably from any 3rd party integration.
Imagine you want to start allowing your customers to text you from various messaging apps when your delivery drivers are late, or when they want to reschedule the delivery. You would use a service like Vonage, which would generate webhooks as a way of communicating with your web application. But as you are a fast growing business, the service soon starts sending so many webhooks to your server that you need to scale up your processing, which means more investment into building infrastructure on your part.
If you are using Ably, all you have to do is to receive Vonage’s webhooks by configuring Incoming Webhooks on the Ably dashboard. Now the messages are coming in on Ably’s pub/sub messaging channels. Ably can process them all onto a queue to allow you to deal with them in a reasonable time frame, or use a serverless function to manage them without adding complexity to your infrastructure. You could even use a batched webhook to transform smaller messages into one much larger one.
Getting started with Incoming Webhooks
To allow Ably to receive webhooks from other web services, you need to configure the external web service with a webhook URL. The webhook URL specifies the endpoint for the generated webhook requests, and is defined from within the Ably dashboard. The webhook data will be published to the configured Ably channel as a message.
If you have an Ably account, registering an incoming webhook is simple. Go to your Ably dashboard and navigate to the Ably App you want to register an incoming webhook for. Then head to the Integrations tab and create an incoming webhook with a friendly name and a channel to which messages posted via webhook will be published. This will generate a URL to use in other systems' webhook which you can paste as the callback URL.