jamalahmedmaaz / CQRSAndMediator-Microservice

A microservice architecture template which implements the CQRS and Mediator patterns

Home Page:https://armandjordaan.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

.NET Core

CRUD-CQRS-MEDIATOR-MICROSERVICE

This origionally started as a demo project for my medium article Why and how I implemented CQRS and Mediator patterns in a microservice.

PATTERNS

  • CQRS
  • Mediator
  • Layered architecture

TECH STACK

  • Dotnet core 3.1
  • EF Core
  • Postgres
  • NUnit
  • Docker
  • Docker-Compose
  • RabbitMQ (up next)
  • Redis (on roadmap)
  • Hangfire (on roadmap)
  • Swagger (at some point)

Roadmap

Features planned for next development cycle:

  • RabbitMQ support (Investigate if I can implement the infrastructure as an optional package)

Future features to include:

  • Redis cache management on route level i.e cached responses
  • Redis cache management for custom resources i.e custom cache managment accross multiple handlers
  • Hangfire support for running background tasks using redis as a backing store
  • Health checks to monitor service
  • Swagger
  • GraphQL (investigate trade offs)
  • Extend DB layer with infrastructure to facilitate (long)LastModifiedBy,(UTCDateTime)LastModifiedDate,(long)CreatedBy,(UTCDateTime)CreatedDate on resource update and create
  • Extend DB layer with infrastructure to facilitate soft deletes i.e Set IsDeleted prop on a record to true
  • Extend Db layer with infrastructure to exclude IsDeleted reccords from db queries i.e add a query filter

About

A microservice architecture template which implements the CQRS and Mediator patterns

https://armandjordaan.com

License:MIT License


Languages

Language:C# 97.1%Language:Dockerfile 2.9%