Skip to content
Projects

kgrzybek/sample-dotnet-core-cqrs-api

View on GitHub

kgrzybek/sample-dotnet-core-cqrs-api has 3,061 GitHub stars and 678 forks. GitHot measured 0 stars in 24 hours and -3 in 7 days. Last checked 2026-11-09 16:48 UTC. Last push 2024-02-27.

How these counts are measured

Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.

Measured star growth

in 24h
0
in 7 days
-3
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.

CI

Give a Star! :star:

If you like this project, learn something or you are using it in your applications, please give it a star. Thanks!

Description

Sample .NET Core REST API application implemented with basic CQRS approach and Domain Driven Design.

Architecture Clean Architecture

projects_dependencies

CQRS

Read Model - executing raw SQL scripts on database views objects (using Dapper).

Write Model - Domain Driven Design approach (using Entity Framework Core).

Commands/Queries/Domain Events handling using MediatR library.

Domain

projects_dependencies

Validation

Data validation using FluentValidation

Problem Details for HTTP APIs standard implementation using ProblemDetails

Caching

Using Cache-Aside pattern and in-memory cache.

Integration

Outbox Pattern implementation using Quartz.NET

Related blog articles

Simple CQRS implementation with raw SQL and DDD

Domain Model Encapsulation and PI with Entity Framework 2.2

REST API Data Validation

Domain Model Validation

How to publish and handle Domain Events

Handling Domain Events: Missing Part

Cache-Aside Pattern in .NET Core

The Outbox Pattern

How to run application

  1. Create empty database.
  2. Execute InitializeDatabase.sql script.
  3. Set connection string (in appsettings.json or by user secrets mechanism).
  4. Run!

How to run Integration Tests

  1. Create empty database.
  2. Execute InitializeDatabase.sql script.
  3. Set connection string using environment variable named ASPNETCORE_SampleProject_IntegrationTests_ConnectionString

Explore related projects