Have you been hearing more about webhooks recently?
Yes us too and we think there is a good reason. With the digitalization efforts going full steam in all industries product owners, process owners, developers, and solution architects are becoming frustrated by the need to still have dependencies on the use of cumbersome, time-consuming, ESBs and EDI to do their event-driven backend or B2B integrations.
While in contrast, APIs are enabling rapid agile development with their simplicity and discoverability. So why can’t we use APIs for everything? What are webhooks and why do we need them if we have APIs?
In this blog post, I’ll aim to answer these questions and explain why we think webhooks are going to become a common feature of any new application or product.
So… What is a webhook?
Event-driven APIs, reverse APIs, push API.. they have a few different names but to put it simply a webhook enables a client (or downstream) system to subscribe to data from a source (or upstream) system.
Like your regular REST APIs, they use a few key technologies, HTTP and JSON, that make them simple and elegant to use. HTTP makes it easy to establish connections and JSON is a simple way to represent and work with the data.
Unlike your REST APIs, they are not called by clients. Instead, a client system subscribes to a webhook and receives the data in real time.
How does the client system receive the data? Well, when the client system subscribes they provide a URL, called a callback URL, which tells the source system where to push the data when the event occurs.
API vs Webhooks.. more like APIs and Webhooks
So why are we talking about webhooks? Why don’t we just APIs for everything? Well as referenced above when we generally speak about APIs today we are most often referring to REST APIs and REST APIs have been designed for a specific purpose and fit really well for certain use cases.
A REST APIs sweet spot is solving synchronous request/response integrations. For example when you are interacting with one of your favourite apps, it will in most cases, be using REST APIs to create or retrieve data from the backend systems.
Let’s take an example of a travel booking system. A user will find a flight and book it on a web page all through the help of very useful REST APIs that are exposed by the travel booking system.
Now for the real integration challenge. A system does not usually operate in isolation from other systems. Data needs to be shared and synchronized with other downstream systems and partners and that data needs to be shared in real-time so that all parts of the business are working on up-to-date information. These types of integrations require a publish/subscribe pattern rather than a request/response pattern that a REST API provides.
It’s these downstream integrations where webhook APIs make a lot of sense. Rather than calling a REST API checking for updates every x seconds. The upstream system will simply push the data to the downstream system when the events occur.
Why now for Webhooks?
While enterprises have been battling with ESBs and integration platforms to solve most types of integration use cases, cloud platforms and tools like Slack have been innovating using APIs and webhooks to quickly and easily integrate with each other and their customers.
Enterprises are now catching up! Standards such as the Open API specification provided the foundation for a multitude of supporting tools to become available to help enterprises adopt and manage their API implementations. And now the ASYNC API specification is doing the same for webhooks. Very soon enterprises will have the tools to be able to deploy, discover, test, and subscribe to webhooks as easily as they can now deploy, discover, test, and get access to APIs!
What’s next for Webhooks?
On September 1st the Hookie solutions team launched the community edition of webhookie – webhook API infrastructure out of the box – which includes:
Webhook Discoverability – using the ASYNC API specification customers will be able to easily deploy and make their webhooks discoverable to their consumers.
Subscription Management – webhookie will provide the capability for all your consumers to subscribe and manage their webhooks
Guaranteed Delivery – webhookie will ensure your event-driven messages are delivered to the subscribers through a combination of retry strategies for failing callbacks to manual re-send capability.
Traceability and Transparency – webhookie will allow your webhook providers and consumers to inspect the traffic being sent to callbacks building trust with your consumers.
Security – starting with TLS and HMAC signatures in the community edition and extending to OAuth 2.0, Mutual TLS and AS2 for the Enterprise edition your webhooks will be secured.
Scalability – built on top of the very powerfully scaling MongoDB and using a scalable microservice architecture webhookie will be able to scale to your needs.
Do you want to make it easier for your customers to integrate your product into their ecosystem? Give webhookie a try and we’d love to get your feedback!