14
How to Design Reliable and Scalable Webhooks with RabbitMQ

How to Design Reliable and Scalable Webhooks with RabbitMQ

Embed Size (px)

Citation preview

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.