The head of Backend Development wanted to set up a webhook integration to connect two systems. In his case, he wanted to use webhooks to send the event data Mautic collects on his webpage straight to his CRM (Easy Project).
His main concern was making sure the CRM would be able to receive the webhooks even when there was a network problem or when the system was down for maintenance. If he couldn't find a solution that fit his requirements, he would consider building a custom solution. The initial version of the custom solution his team mapped out would've been a combination of a serverless component and a microservice component.
The serverless component: an AWS architecture
Receive the request through AWS API Gateway. The request will be passed to a lambda to store the payload (storage undecided), a second lambda will try to re-send the payload to the destination. A potential third lambda would be used for delay processing. Method for error handling is to retrieve the payload from the storage and retry.
Create a custom app in Ruby on Rail that will serve as the app controller. It will receive the payload, store it in Redis and re-send the payload to the destination using ActionCable. The method for error handling is having ActionCable make sure that action is repeated using Sidekiq.
After finding Hookdeck through a web search he discovered that it met all his needs, and was so much simpler to set up than other solutions.
"The biggest benefit is that we don't have to worry about running the service. It's simple to set up and it works. I can expect Hookdeck to receive my webhooks from Mautic, store the payload, and deliver it to the CRM system. If something goes wrong, Hookdeck is there to retry the request and send us an alert."
"The dashboard is very useful because I can see the history and reports for our the webhooks. In one click, we have access to all the source data (JSON payload)."
By using Hookdeck, Easy Software was able to save a lot of development time. Their initial estimate for a similar service between their systems was at least 20 man-days for the queueing without any of the additional toolings. "I'm happy! Instead of having to go through a custom implementation and maintain custom services, we can focus on our primary business. "
He realizes how much value it gives him and his team to have full visibility of their webhooks. He uses the UI to monitor problems and manage migrations but the person he finds it helps the most is the integration manager. By using the dashboard, he is able to solve issues a lot quicker. "He does not have a technical background so a dashboard that clearly indicates the errors has been really helpful for him." Hookdeck’s dashboard helps with troubleshooting by showing the status code, metadata, and data of every webhook event.