SkillAgentSearch skills...

SuperSafeBank

Sample Event Sourcing implementation with .NET Core

Install / Use

/learn @mizrael/SuperSafeBank

README

SuperSafeBank

SuperSafeBank

This repository shows how to implement Event Sourcing, CQRS and DDD in .NET Core, using a Bank as example.

The code has been used as example accompaining a few series of articles on my personal blog:

  • https://www.davidguida.net/event-sourcing-in-net-core-part-1-a-gentle-introduction/
  • https://www.davidguida.net/event-sourcing-on-azure-part-1-architecture-plan/
  • https://www.davidguida.net/event-sourcing-on-azure-part-2-events-persistence/
  • https://www.davidguida.net/event-sourcing-on-azure-part-3-command-validation/
  • https://www.davidguida.net/event-sourcing-on-azure-part-4-integration-events/
  • https://www.davidguida.net/my-event-sourcing-journey-so-far/
  • https://www.davidguida.net/event-sourcing-things-to-consider/

An ASP.NET Core API is used as entry-point for all the client-facing operations:

  • create customers
  • create accounts
  • deposit money
  • withdraw money

Infrastructure

The Cloud can be hosted on Azure, using Azure Functions, Storage Table to persist Events and Materialized Views, and ServiceBus to broadcast the Events.

An "on-premise" version is available as well, which uses

  • Kafka to broadcast the integration events
  • MongoDb to store the QueryModels used by the API or SQLServer can be used as persistence layer for aggregates.
  • several options are available for the Persistence layer to store aggregates:

The on-premise infrastructure can be spin up by simply running docker-compose up from the root folder.

Give a Star! ⭐️

Did you like this project? Give it a star, fork it, send me a PR or sponsor me!

View on GitHub
GitHub Stars592
CategoryDevelopment
Updated2d ago
Forks102

Languages

C#

Security Score

85/100

Audited on Mar 19, 2026

No findings