Learning At Improving

MassTransit, Ready to Form

This event has passed


Defeating the menace of distributed systems complexity is no simple task. It requires simultaneously solving the problems of consistency, reliability, and fault tolerance. Each of these problems is difficult on their own. Taking them on all at once without a battle plan is a truly monumental task. Fortunately, MassTransit has a solution. It defines a series of abstractions over distributed systems problems, giving each responsibility to a distinct component. It then offers out-of-the-box implementations for many common scenarios. And it provides a framework for assembling those components into a powerful united force.

Form Feet and Legs: Transport Your distributed system is going to need to navigate whatever terrain it finds itself in. Choose the right transport for the environment. You will need to use an in-memory implementation for unit testing. For on-premises deployment, RabbitMQ is the right tool. And when you take it to the cloud, the Amazon SQS, ActiveMQ, or Azure Service Bus transports have you covered.

Form Arms and Torso: Pipelines A solid core pulls the pieces together. In MassTransit, that's the receive endpoint. It forms the central hub to which you attach consumers and middleware. Decompose your problem so that each subset of messages has its own receive endpoint. Configure consumers to handle messages. And inject retry, circuit breaker, and rate limiter middleware to improve fault tolerance.

And I'll Form the Head: Orchestration A distributed system would be pure chaos without the ability to keep all components consistent. That executive function belongs to the orchestrator.

Compose a state machine using Automatonymous to track progress toward a business objective. Build a routing slip using Courier to ensure that all steps happen atomically. Or code a consumer saga to apply your own orchestration pattern.

There are a lot of parts to a MassTransit solution. Each one exists to solve a specific problem. You cannot truly defeat the complexity of distributed systems design until you bring all of those pieces together into one united battle force.


Michael Perry, Principal Consultant
Michael Perry

Software is math. Michael L Perry has built upon the works of mathematicians like Bertrand Meyer, James Rumbaugh, and Donald Knuth to develop a mathematical system for software development. He has captured this system in a set of open source projects, Update Controls and Correspondence. As a Principal Consultant at Improving, he applies mathematical concepts to building scalable and robust enterprise systems. You can find out more at

Don’t miss your chance, register now

More Learning Events

Join us wherever you are in the world as we share some knowledge – hosted by our Improvers.

Fri, October 01
12:00 PM CDT
The Professional Value of Leisure and Imagination

Let's explore together the practical possibilities that are enabled by switching our imagination-awareness on for complex problem solving

Read More
Fri, October 08
12:00 PM CDT
Test-Driven Data Engineering Using DBT & Python

This session will cover some of the fundamental patterns to building automated tests as part of the data engineering process.

Read More

Online Training

Aren't able to join our classes in person?

We are now offering an online version of our most popular courses. These highly engaging and interactive classes will provide you the knowledge and skillset you are looking for — all from the comfort of your computer.

See Our Online Classes