Skip to content
Replace eShopOnContainers EventBus with CAP
C# JavaScript PowerShell HTML CSS TypeScript Other
Branch: cap
Clone or download
Pull request Compare This branch is 26 commits ahead, 39 commits behind dotnet-architecture:dev.
Type Name Latest commit message Commit time
Failed to load latest commit information.
build updated build def for webspa, mvc & status Jul 8, 2019
cli-linux Improve (removed dotnet restore (doing with publi… Sep 6, 2017
cli-mac Update project list in mac build script Oct 25, 2017
docs Minor fixes to microservices e-book Jun 30, 2019
img Update Containerized applications e-book and covers Jun 18, 2019
readme Update Jun 5, 2019
scripts Add a TransactionId to IntegrationEventLogEntry to ensure that chaine… May 7, 2019
vsts-docs Merge branch 'dev' Aug 10, 2017
.dockerignore Inital Dockerfiles Apr 12, 2019
.gitattributes Reverted duality of config files for ocelot because were not really n… Feb 15, 2018
.gitignore Fix test link Sep 13, 2018
docker-compose-external.override.yml Updated rest of docker-compose files to v 3.4, so it works in VS for Mac Mar 26, 2018
docker-compose.dcproj Deleted the file as we don't need it anym… May 12, 2018
docker-compose.nobuild.yml Updated rest of docker-compose files to v 3.4, so it works in VS for Mac Mar 26, 2018
docker-compose.override.yml Add creation event traces to Validator classes to validate issue dotn… May 16, 2019
eShopOnContainers-Android.sln Set same vs version for all the solutions Aug 31, 2017
eShopOnContainers-MobileApps.sln Moved eShopOnContainers.Core back to correct location. Jan 12, 2018

eShopOnContainers with CAP

This is a fork of a sample .NET Core reference application eShopOnContainers developed by Microsoft, modified to run on top of CAP.

The application is based on a simplified microservices architecture and Docker containers. It is more comprehensive and complex than typical sample applications. In particular, it shows many CAP features working together.

If you have any comments, please open an issue in this repository

eShopOnContainers Architecture overview

This reference application is cross-platform at the server and client side, thanks to .NET Core services capable of running on Linux or Windows containers depending on your Docker host, and to Xamarin for mobile apps running on Android, iOS or Windows/UWP plus any browser for the client web apps. The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using Http as the communication protocol between the client apps and the microservices and supports asynchronous communication for data updates propagation across multiple services based on Integration Events and an Event Bus plus other features defined at the roadmap.

CAP overview

CAP is a library based on .Net standard, which is a solution to deal with distributed transactions, also has the function of EventBus, it is lightweight, easy to use, and efficiently.

CAP is adopted the local message table program integrated with the current database to solve the exception may occur in the process of the distributed system calling each other. It can ensure that the event messages are not lost in any case.

CAP provides a simpler way to implement event publishing and subscriptions, you do not need to inherit or implement any interface during the process of subscription and sending.

CAP implements the Outbox Pattern described in the eShop ebook

Setting up your development environment for eShopOnContainers

Visual Studio 2017 and Windows based

This is the more straightforward way to get started:

CLI and Windows based

For those who prefer the CLI on Windows, using dotnet CLI, docker CLI and VS Code for Windows:,-Docker-CLI-and-VS-Code)

CLI and Mac based

For those who prefer the CLI on a Mac, using dotnet CLI, docker CLI and VS Code for Mac:,-VS-for-Mac-or-with-CLI-environment--(dotnet-CLI,-Docker-CLI-and-VS-Code)

Sending feedback and pull requests

As mentioned, we'd appreciate your feedback, improvements and ideas. You can create new issues at the issues section, do pull requests and/or send emails to

You can’t perform that action at this time.