Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

How to Design Reliable and Scalable Webhooks with RabbitMQ

735 views

Published on

Webhooks are user-defined HTTP callbacks that are used to invoke behavior on another site when an event occurs. Webhooks are great for creating loosely coupled architectures for integrating multiple heterogenous systems. Unfortunately implementing webhooks requires you to handle multiple scenarios related to external system failures.

View the full article here: http://objectzen.com/2017/02/22/reliable-scalable-webhooks-rabbitmq/

Published in: Technology
  • Be the first to comment

How to Design Reliable and Scalable Webhooks with RabbitMQ

  1. 1. How to Design Reliable and Scalable Webhooks with RabbitMQ
  2. 2. What are Webhooks? ● What: User-defined HTTP callbacks ● When: Triggered by an event ● How: Events on one site to invoke behavior on another site ● Why: Loosely coupled architecture
  3. 3. Typical Webhook Workflow
  4. 4. What if Site B is unreachable or request times out?
  5. 5. What if Site B has internal server error?
  6. 6. Site A is always responsible for message reliability “Don’t drop any messages”
  7. 7. Reliable Webhook with RabbitMQ
  8. 8. What if Site B is unreachable Or request times out?
  9. 9. What if Site B has internal server error?
  10. 10. Making it Scalable! Delivering to multiple sites
  11. 11. Handling Multiple Sites
  12. 12. Summary ● Webhooks great for integrating with external systems ● Challenges: ○ Handle scenario when external system is offline ○ Handle scenario when external system fails ○ Delivery to multiple external systems concurrently
  13. 13. Summary ● RabbitMQ & Message Queues are building blocks for webhooks ● RabbitMQ offers: ○ Reliability with message queues ○ Scalability by running multiple instance of processes ● RabbitMQ provide reliability and scalability out of the box
  14. 14. Thank You Visit objectzen.com for more great content.

×