RabbitMQ Archives - FullStackMastery
All posts in "RabbitMQ"

How to Design Reliable and Scalable Webhooks with RabbitMQ

By Jim Liao / February 22, 2017

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. In this video, I walk you through how to design scalable and reliable webhooks with RabbitMQ.

Continue Reading

Continue Reading >
Share

Content Enricher Pattern in RabbitMQ

By Jim Liao / February 3, 2017

The Content Enricher Pattern is a widely used Enterprise Integration Pattern in implementing a data enrichment workflow. A content enricher takes a data from a structured source message (such as JSON,XML,YAML,Protobuf) and produces an enriched message that is sent further down the data processing pipeline. The content enricher also acts as a gateway to an external resource. Typically the content enricher will create the enriched document using data from an external resource. In this video, I go over how to implement the content enricher messaging pattern in RabbitMQ. Continue Reading

Continue Reading >
Share

How to Replace Database Polling with RabbitMQ

By Jim Liao / January 26, 2017

A database is traditionally used to store data, but I have seen developers use database tables as a job queue. The purpose of the job queue is to track which data needs to be processed after it has been inserted into that table. A dedicated process then needs to periodically poll/query the database table for unprocessed data. Depending on the frequency of the polling and the availability of the unprocessed data, this technique can become very inefficient.  Database polling is easy to implement and quick to prototype. Unfortunately as your systems grows, it will soon show its limitations in scalability and efficiency. RabbitMQ is an ideal solution to replace this type of database polling. In this video, I go over the high level design of how to replace database polling with RabbitMQ.

Continue Reading

Continue Reading >
Share

Why you should not use RabbitMQ for real-time messaging

By Jim Liao / October 14, 2016

I wrote on how RabbitMQ can improve your architecture and design and in that article I wrote that some projects failed because people used RabbitMQ against its optimal usage. A loyal reader asked me to elaborate on some of the cases that people use it incorrectly. When I first used RabbitMQ, I treated it like a magic bullet that can solve all of our messaging needs, but soon discovered that it was not the case. The following are some of the cases that I regret for using RabbitMQ.

Continue Reading

Continue Reading >
Share

How can RabbitMQ improve your software design and architecture?

By Jim Liao / August 14, 2016

I had been searching and testing various messaging systems up until I discovered RabbitMQ, a very unique software that I highly recommend as a subsystem in your software solutions due to the fact that it’s matured and battle-tested. Unfortunately, while RabbitMQ is a robust system with many different uses, I have seen many people used it for the wrong reasons and created systems around RabbitMQ that did not reflect its optimal usage. RabbitMQ is a feature rich and reliable messaging system as long as you know how to use it. This guide will show you the optimal usage of RabbitMQ.

Continue Reading

Continue Reading >
Share