Owlet — .NET Microservices Platform

Page header background

The order exists because a message was delivered

Overview

Four .NET services behind a gateway, with a durable queue between them

Two services have to agree about an order and one of them is down. What happens to the order?

Four ASP.NET Core services sit behind an nginx gateway. A JWT issued by one of them is validated independently by the others, so no request has to phone home to the identity service. The basket is held in Redis, orders and catalogue in SQL Server, and an order event is published to RabbitMQ by one service and consumed by another. The admin view of an order exists only because a message was delivered.

Portfolio item image

Engineering

How it was built

Frontend

  • Angular storefront and admin views

Backend & services

  • Four ASP.NET Core services behind an nginx gateway
  • JWT issued by the identity service and validated independently by the others
  • Redis-backed basket, two SQL Server databases
  • Checkout re-reads the price from the database rather than trusting the basket

Integrations

  • Order event published to RabbitMQ by one service and consumed by another
  • Queue holds messages while the consumer is stopped and drains on restart
  • Order event crosses the bus in 5–9 ms on a warm stack
  • Serilog structured logging from every hop into Seq

Testing & verification

  • 105 tests

CI/CD & workflow

  • Whole stack reproducible with one docker compose up

Applied

Skills on this project

Microservices.NETRabbitMQRedisDockerAngularDistributed systems

Next step

Ready to bring your project to life?

Schedule a free 30-minute strategy call with our team.

Book Your Free Consultation or email contact@disit.tech

No sales call. You will talk to the engineer who would do the work, and you will get a written summary either way.