NextAurora

An event-driven microservices store with a kill switch: kill a service live and watch the system not lose a single message.

.NET 10WolverineRabbitMQEF CoreReact 19KeycloakDockerAspire

Try it liveSource on GitHub

Demo login: buyer1 / buyer1

What a visitor sees

Five .NET microservices run a real e-commerce order flow at shop.emeraldleaf.dev. Log in as buyer1 / buyer1 and run the demo in four steps. The panel here simulates the same topology under its real service and queue names, and acts out each step as you reach it.

nextaurora · order sagasimulated

  1. 1 Place an order

    POST /orders returns 202 Accepted: placement is asynchronous, and the order row itself is the tracking record.

    Orders flow from the storefront through every service and out as shipped.

  2. 2 Watch the saga

    The order page draws the live saga canvas: the real RabbitMQ topology (three fanout exchanges, seven consumer queues, production names), with your order's events replayed hop by hop. Placed → Paid → Shipped in about nine seconds, each hop captioned with the pattern it demonstrates.

    Slowed to a third of its speed, so each hop along the bus can be followed.

  3. 3 Break it

    The demo closes on a button that kills the payment service in production. Kill it and place another order: the order holds at Placed while OrderPlacedEvent sits in the durable payment-orders queue.

    Payment is stopped. The count on it climbs as orders queue for it, and shipping stalls.

  4. 4 Revive it

    Start the consumer again and the saga drains through: the order completes the moment the service is back. Nothing on the live site is simulated, so "no message is ever lost" is a claim you verify yourself, in the browser.

    Payment is back. Its queue drains, every held order ships, and lost stays at 0.

    Then take over: payment, shipping, notification and the broker are switches, and your first click hands the panel to you.

The architecture underneath

NextAurora architecture: services, RabbitMQ topology, and the order-placement saga

Built for scale, shown on one box

The architecture is a large-scale distributed deployment: each service independently deployable with its own database, a durable broker between them, horizontal scale-out per service, no shared process. The public demo intentionally packs all of it into one Aspire host, one repository, and one server so it can be developed, demonstrated, and broken on purpose without a cloud bill. What you’re seeing is the architecture under demo conditions, not the deployment shape it was designed for.

Engineering beyond the code

Where to go next