Owlet — .NET Microservices Platform
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.

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
Next step
Ready to bring your project to life?
Schedule a free 30-minute strategy call with our team.
No sales call. You will talk to the engineer who would do the work, and you will get a written summary either way.