finds.dev← search

// the find

aspnetrun/run-aspnetcore-microservices

★ 3,238 · C# · MIT · updated Mar 2026

Microservices on .NET platforms used ASP.NET Web API, Docker, RabbitMQ, MassTransit, Grpc, Yarp API Gateway, PostgreSQL, Redis, SQLite, SqlServer, Marten, Entity Framework Core, CQRS, MediatR, DDD, Vertical and Clean Architecture implementation with using latest features of .NET 8 and C# 12

A course companion repo that builds a toy e-commerce system across five microservices using every buzzword pattern available in .NET 8 — CQRS, DDD, vertical slice, clean architecture, gRPC, MassTransit, YARP. It's designed to teach, not to ship. If you're learning how these pieces fit together in a Docker Compose environment, this is one of the better structured walkthroughs.

Each service uses a deliberately different stack (Marten/PostgreSQL for Catalog, Redis for Basket, SQLite for Discount, SQL Server for Ordering) so you see the same patterns applied across different data layers. The BuildingBlocks library is small and non-magical — the CQRS interfaces are just thin wrappers over MediatR with no framework lock-in. The vertical slice layout in Catalog (feature folder + handler + endpoint in one place) is a good contrast to the clean architecture layers in Ordering, making the tradeoffs visible. Docker Compose wiring is complete and actually works.

This is a course repo, not a reference architecture — the Discount service stores its SQLite db file directly in the repo (discountdb committed to git), which would be a disaster in any real deployment. There's no authentication or authorization anywhere in the system; the YARP gateway passes requests straight through with no identity context. The 'DDD' in Ordering is mostly just folder names — value objects like CustomerId are trivially thin records with no real invariants enforced. Tests are absent entirely; the README's suggestion to just run docker-compose is the only validation story.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →