Tutorials Microservices with .NET
End-to-end Order Placed Communication using RabbitMQ — Complete Guide
End-to-end Order Placed Communication using RabbitMQ — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Microservices with .NET on Toolliyo Academy.
On this page
Microservices with .NET · Lesson 32 of 120
Choreography Saga
Beginner ✓ → Intermediate → Advanced → Professional
Intermediate · 2 — Building services · ~6 min · Module 4: Saga and Distributed Transactions
What is this?
Choreography Saga is a key part of ShopNest Cloud-Native — your .NET microservices learning project. In plain terms: it helps Analytics Service work correctly in a distributed system where each app deploys and scales on its own.
Why should you care?
You care about this when one business action spans Order, Payment, and Inventory — and you cannot use one SQL transaction across three databases.
See it live — copy this example
Create a Web API project (dotnet new webapi), paste the code, then run dotnet run.
public class PlaceOrderStateMachine : MassTransitStateMachine<PlaceOrderState>
{
public State AwaitingPayment { get; private set; }
// PaymentSucceeded → ReserveInventory → Completed
// PaymentFailed → Compensate (cancel order)
}
Run Example »
Edit the code and click Run — like W3Schools Try it Yourself.
What happened?
- The example shows Choreography Saga wired into Analytics Service.
- Read each line, run it locally, then change one setting and observe what breaks or improves.
- That is how teams learn in production too — small experiments, not big bang rewrites.
Try it yourself
- Open or create the ShopNest project area for Analytics Service.
- Apply the Choreography Saga pattern from the lesson example.
- Run dotnet build && dotnet run (or docker compose up when the lesson uses containers).
- Change a string or number in the example and run again — predict the output first.
- Break the code on purpose (remove a semicolon), read the compiler error, then fix it.
Remember
Choreography Saga connects to Analytics Service in ShopNest Cloud-Native. Practice by editing the example yourself — do not only read. Move on when you can explain this topic in your own words without looking.
Real-world: Flipkart Big Billion Day checkout
During peak sales, Order and Payment services scale independently. RabbitMQ buffers spikes so Payment workers catch up without blocking the mobile app.
Outcome: Checkout returns in under 500ms while payment completes in the background — shoppers see clear status updates.