Distributed Messaging System — Setup Consumers and RabbitMQ with Docker in ASP.NET Core
Discuss how to quickly setup a distributed messaging system, including consumers and RabbitMQ with Docker in ASP.NET Core, hopefully, in less than an hour.
Background
What is distributed messaging system? A distributed messaging system allows asynchronous processing of messages or workloads in microservices architectures. Such a design decouples the message producers, message consumers and the message transport, allowing the design to be highly scalable. Amazon documentation does a great job explaining the basics. Here is the link.
If you have placed an order on Amazon, you will notice that your order gets submitted almost instantly after validating the payment method. After that, you can walk away and a suite of subsequent events would occur. For example, you get an email confirming your order, the system handling the warehouse and inventory, the system handling shipping, etc..
How do we bring such best practices from Amazon to our own enterprise applications?
Goal
The goal is to quickly set up a distributed messaging system that is ready to receive and…