explaingit

dotnet-architecture/eshoponcontainers

24,384C#Audience · developerComplexity · 4/5Setup · hard

TLDR

A sample e-commerce app demonstrating how to build large .NET applications using microservices, splitting functionality into independent services that communicate and scale separately.

Mindmap

mindmap
  root((repo))
    What it does
      Microservices architecture
      E-commerce sample app
      Docker containers
    Key patterns
      Domain-Driven Design
      Event-driven communication
      API gateways
    Deployment
      Kubernetes orchestration
      Azure cloud ready
    Interfaces
      Web UI
      Single-page app
      Mobile clients
    Tech stack
      C# and .NET
      Docker
      Kubernetes
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Study a working microservices architecture to understand how to split a monolithic app into independent services.

USE CASE 2

Learn patterns like Domain-Driven Design and event-driven communication between services in a real e-commerce context.

USE CASE 3

Reference how to deploy containerized .NET services to Kubernetes and handle service-to-service communication.

USE CASE 4

Build a multi-interface application with web, single-page app, and mobile clients backed by microservices.

Tech stack

C#.NETDockerKubernetesAzure

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Docker, Kubernetes cluster setup, and multiple .NET services to coordinate, Azure resources may also need provisioning.

License could not be detected automatically. Check the repository's LICENSE file before use.

In plain English

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.

Copy-paste prompts

Prompt 1
Show me how eShopOnContainers structures its microservices for the product catalog, shopping basket, and orders. What does each service own?
Prompt 2
How does eShopOnContainers handle communication between microservices? Does it use synchronous APIs or event-driven messaging?
Prompt 3
Walk me through the Docker Compose setup in eShopOnContainers, how are the containers defined and what services run?
Prompt 4
What is the API gateway pattern in eShopOnContainers and how does it route requests to the right microservice?
Prompt 5
How would I deploy eShopOnContainers to Kubernetes? What YAML manifests or Helm charts does the project provide?
Open on GitHub → Explain another repo

← dotnet-architecture on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.