How to Design Reliable and Scalable Webhooks with RabbitMQ

14
How to Design Reliable and Scalable Webhooks with RabbitMQ

Transcript of How to Design Reliable and Scalable Webhooks with RabbitMQ

Page 1: How to Design Reliable and Scalable Webhooks with RabbitMQ

How to Design Reliable and Scalable Webhooks with RabbitMQ

Page 2: How to Design Reliable and Scalable Webhooks with RabbitMQ

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

Page 3: How to Design Reliable and Scalable Webhooks with RabbitMQ

Typical Webhook Workflow

Page 4: How to Design Reliable and Scalable Webhooks with RabbitMQ

What if Site B is unreachable or request times out?

Page 5: How to Design Reliable and Scalable Webhooks with RabbitMQ

What if Site B has internal server error?

Page 6: How to Design Reliable and Scalable Webhooks with RabbitMQ

Site A is always responsible for message reliability

“Don’t drop any messages”

Page 7: How to Design Reliable and Scalable Webhooks with RabbitMQ

Reliable Webhook with RabbitMQ

Page 8: How to Design Reliable and Scalable Webhooks with RabbitMQ

What if Site B is unreachableOr request times out?

Page 9: How to Design Reliable and Scalable Webhooks with RabbitMQ

What if Site B has internal server error?

Page 10: How to Design Reliable and Scalable Webhooks with RabbitMQ

Making it Scalable!

Delivering to multiple sites

Page 11: How to Design Reliable and Scalable Webhooks with RabbitMQ

Handling Multiple Sites

Page 12: How to Design Reliable and Scalable Webhooks with RabbitMQ

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

Page 13: How to Design Reliable and Scalable Webhooks with RabbitMQ

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

Page 14: How to Design Reliable and Scalable Webhooks with RabbitMQ

Thank YouVisit objectzen.com for more great content.