eShopOnContainers
Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual Studio, VS for Mac and CLI based environments with Docker CLI, dotnet CLI, VS Code or any other code editor. Moved to https://github.com/dotnet/eShop.
A sample e-commerce app demonstrating how to build large .NET applications using microservices, splitting functionality into independent services that communicate and scale separately.
eShopOnContainers is a sample online shopping application built by Microsoft to demonstrate how to build large applications using a microservices architecture. Microservices means splitting an application into many small, independent services — each handling one job, such as managing a product catalog, a shopping basket, orders, payments, or user identity — rather than building everything as one monolithic block.
The project simulates a real e-commerce store and shows best practices for how these services communicate with each other, handle failures gracefully, and scale independently. It uses Docker containers (self-contained packages that run consistently across different machines) and can be deployed to Kubernetes (a system for managing many containers at once). The application includes both a traditional web interface and a single-page app interface, plus mobile client support.
You would use this as a learning reference if you are a developer or architect designing a large-scale .NET application and want a concrete, working example to study. It demonstrates patterns like Domain-Driven Design (structuring code around real-world business concepts), event-driven communication between services, and API gateways (a single entry point that routes requests to the right service).
The tech stack is C# with .NET, Docker, and Azure Kubernetes Services. The project has since moved to a new home at github.com/dotnet/eShop.
Where it fits
- Study a working microservices architecture to understand how to split a monolithic app into independent services.
- Learn patterns like Domain-Driven Design and event-driven communication between services in a real e-commerce context.
- Reference how to deploy containerized .NET services to Kubernetes and handle service-to-service communication.
- Build a multi-interface application with web, single-page app, and mobile clients backed by microservices.