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.
Requires Docker, Kubernetes cluster setup, and multiple .NET services to coordinate; Azure resources may also need provisioning.
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.
Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.