Building a Distributed Data Ingestion System with RabbitMQ

Alvaro Videla
Co-author of RabbitMQ in Action


Your company has servers distributed around the world and you need to process data in a centralised location. The data is produced by applications using different technology stacks and comes from various sources, from web servers to sensors. How could you solve this problem? Enter RabbitMQ.

In this talk we are going to show how to build a system that can ingest data produced at separate geo located areas (think AWS and it's many regions) and replicate it to a central cluster where it can be further processed and analysed.

We will present an example of how to build a system like this one by using RabbitMQ Federation to replicate data across AWS Regions and RabbitMQ support for many protocols to produce/consume data.

To help with scalability we are going to show an interesting way to implement sharded queues with RabbitMQ by using the Consistent Hash Exchange.

If you want to learn what else has RabbitMQ to offer beyond simple messaging and queueing, then this is the talk for you.

Talk objectives

Our goal is to show that over the years RabbitMQ has gone way beyond a "simple" AMQP server to be able to have federated brokers, HA queues and support for many protocols and languages.

Target audience

Developers interested in building a data ingestion platform that span many locations across the world.

Developers that have built these kind of solutions already but are interested in learning about alternatives.

Developers interested in RabbitMQ and Messaging in general.


Alvaro Videla used to work as Core Developer for RabbitMQ. Before moving to Europe he was working in Shanghai where he helped building one of Germany biggest dating websites. He co-authored the book "RabbitMQ in Action" for Manning Publishing. Some of his open source projects can be found here: Apart from code related stuff he likes traveling with his wife, listening/playing music and reading books.

GitHub: videlalvaro

Twitter: @old_sound

Back to conference page