← All work

Owlet — .NET Microservices Platform

The order exists because a message was delivered

  • Completed
  • Oct 2023

Overview

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.

1 / 7

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

Tell us what you're building

Book a free 30-minute call with the engineer who would do the work. You get a written summary afterward, whether or not we work together.

Book a call or email disit.tech@gmail.com

Prefer to write? A developer reads every message and replies within one business day.