Why You Should Be Paying Attention to Your Webhooks
From simple monoliths to large distributed applications, communication between remote members and integrated services is vital to the functions of modern application architectures. This communication requirement has caused a rise in the use of webhooks in recent years. With this increase in webhook usage comes the need to pay more attention to the technology and learn how to deploy integrations with services in a timely and cost-effective manner.
In this article, we discuss why the usage of this communication mechanism is on the rise. We then look at the impact of failed webhooks on your application and business, and discuss why and where you need to start paying attention.
If you’re still new to webhooks and need a primer to catch up quickly, check out our article “What Are Webhooks and How Do They Work?”.
The impact of dropping a webhook
Before we get into the increase in use and dependency of webhooks, it’s important to examine what happens when a webhook operation fails, including the impact on software operations and the business itself.
These are the operational side effects of missing a webhook or webhook failure. They include but are not limited to the following:
- Loss of information about the webhook/event.
- Disruption of workflow, ex. payment without product shipping.
- Inconsistency in the application state (missing transaction records, inconsistent database records, non-reconciled operations, etc.).
These are the undesirable impacts a missing webhook or webhook failure can have on your business. They include but are not limited to the following:
- Customer dissatisfaction; no customers like to pay and not get value.
- Loss of money or customer business. The negative experience caused by webhook failure might cause a customer not to return or retry a purchase.
- Can make customers question your brand.
- Growing support tickets; the more operational failures, the more complaints are submitted to support.
Missing webhooks and webhook failure directly and indirectly affect the cost of running the business. They impacts include but are not limited to the following:
- Time and effort wasted on support tickets from dissatisfied customers.
- Engineering time spent on combing logs for errors and reconciling prematurely terminated operations.
- Cost of compensating unhappy customers (ex. Amazon refunds customers the shipping fee of any order where shipping was delayed beyond a certain period).
The impacts listed above are some of the experiences you might have when you miss a webhook, or a webhook fails. It would be best if you did not drop webhooks, as they are vital in workflow coordination and contain essential information about the event to which you need to act.
In the next section, we will discuss how the use of webhooks is growing and how their reliability is critical to business success.
The growing dependency on webhooks
On Google alone, the word “webhook/webhooks” is searched an average of 100k to a million times monthly, indicating a large amount of interest being paid to webhooks in recent times.
Most teams receive webhooks from at least one SaaS application.
Let's look at payment systems as an example. I’m sure you can’t remember the last time a team said "let's build our payment infrastructure from scratch".
Unless you're a global tech giant like Microsoft or Amazon, you will most likely use a Payment service like PayPal or Stripe to collect payments. When a customer makes a payment, the payment service will communicate the event to you to take action. Like Stripe or what PayPal calls an Instant Payment Notification, this communication will likely be through a webhook. This fact indicates that a large percentage of applications currently receiving payments depend on webhooks for the success of their operations.
With the increased delegation of functions like payment (ex. Stripe), automation (ex. Zapier), inventory and e-commerce (Shopify), and customer relationship management (ex. Salesforce), from the core of the main application to third-party services, the use of webhooks is growing.
A full understanding of the impact of failed webhooks, along with this growth and critical dependence on webhooks for successfully running applications, will show you that the surface area of the impact of a failed webhook increases with an increase in the number of webhooks.
Therefore, teams need to pay equal effort and attention to building dependable webhook communication channels to guarantee business success.
Where you need to start paying attention: webhook resiliency and observability
Unfortunately, I need to state a seemingly unpleasant fact before we can move on.
Failure is inevitable when it comes to working with webhooks.
Don't panic; this doesn't mean you can't ensure that your application misses no webhooks. In fact, that's the sole purpose of this entire series.
Two attributes you want your webhook infrastructure to possess are resiliency and observability.
Resiliency is your webhooks' ability to resist failure through scaling and fault tolerance.
Observability is having complete visibility into the activities of your webhooks, including the ability to set up actionable events for scaling and failure recovery.
Having these two attributes in your webhook infrastructure will transfer control of the lifecycle of your webhooks to you. With this control, you can monitor your webhooks, throttle the delivery, retry failed webhooks, and persist webhooks for later consumption when doing a migration or trying to get a crashed server back up.
The following articles in this series will guide you on best practices for tackling webhook problems, deploying a resilient webhook infrastructure in the shortest time possible, and saving costs.
In this article, we discussed the need to start paying close attention to your webhooks to ensure that you're not dropping webhooks that are vital to your business' success. We also emphasized the need to focus on webhook resiliency so that your webhooks can be fault-tolerant and withstand issues of scale.
The following article discusses where you should not put your attention when handling webhooks and why.