All Projects → ArmandJ77 → CQRSAndMediator-Microservice

ArmandJ77 / CQRSAndMediator-Microservice

Licence: MIT license
A microservice architecture template which implements the CQRS and Mediator patterns

Programming Languages

C#
18002 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to CQRSAndMediator-Microservice

social-me-die
A social media experiment with .net core, ef core, react and mobx.
Stars: ✭ 16 (-81.4%)
Mutual labels:  mediator-pattern, cqrs-pattern
fastapi-pydiator
Python clean architecture and usecase implementation with fastapi and pydiator-core
Stars: ✭ 58 (-32.56%)
Mutual labels:  mediatr, mediator-pattern
MediatR.Extensions.Autofac.DependencyInjection
Autofac plug-in for MediatR.
Stars: ✭ 30 (-65.12%)
Mutual labels:  mediatr, mediator-pattern
guozeyu.com
我的网站文章的原始数据与历史
Stars: ✭ 17 (-80.23%)
Mutual labels:  blog-article
blueshoes-kotlin-android
Projeto Kotlin Android - construção de um mobile-commerce chamado BlueShoes.
Stars: ✭ 46 (-46.51%)
Mutual labels:  blog-article
MsCoreOne
MsCoreOne is a simple Ecommerce with using many technologies such as .NET 5, Entity Framework Core 5, React 16.13 with modern Clean Architecture, Domain-Driven Design, CQRS, SOLID, Identity Server 4, Blazor. It will focus on resolving the problems always see in the process to develop projects.
Stars: ✭ 77 (-10.47%)
Mutual labels:  mediatr
MediumUnlimited
Android App written with Flutter/Dart to navigate medium.com without limitations.
Stars: ✭ 28 (-67.44%)
Mutual labels:  medium-article
eshopzero
.Net Microservice Application
Stars: ✭ 27 (-68.6%)
Mutual labels:  mediatr
mesos framework demo
A sample Mesos framework
Stars: ✭ 19 (-77.91%)
Mutual labels:  blog-article
CleanArchitecture
Clean Architecture Solution for .NET 5
Stars: ✭ 18 (-79.07%)
Mutual labels:  mediatr
spring-microservices
🌱 Simple Microservice Architecture based on Sagas and CQRS patterns
Stars: ✭ 52 (-39.53%)
Mutual labels:  cqrs-pattern
blog
个人博客
Stars: ✭ 20 (-76.74%)
Mutual labels:  blog-article
csharp-design-patterns-for-humans
Design Patterns for Humans™ - An ultra-simplified explanation - C# Examples
Stars: ✭ 1,086 (+1162.79%)
Mutual labels:  mediator-pattern
akka-java8-examples
Simple examples of using Akka Java 8 interface
Stars: ✭ 17 (-80.23%)
Mutual labels:  blog-article
android dialer replacement
Android dialer replacement sample app
Stars: ✭ 69 (-19.77%)
Mutual labels:  medium-article
Equinoxproject
Full ASP.NET Core 5 application with DDD, CQRS and Event Sourcing concepts
Stars: ✭ 5,120 (+5853.49%)
Mutual labels:  mediatr
python-telegram-bot-heroku-example
Repository for Medium article about creating a Telegram bot in Python and deploying it on Heroku
Stars: ✭ 13 (-84.88%)
Mutual labels:  medium-article
tornado-analytics
opencredo.com/blogs/building-a-google-analytics-dashboard-with-python3-tornado/
Stars: ✭ 19 (-77.91%)
Mutual labels:  blog-article
Rust Learning
A bunch of links to blog posts, articles, videos, etc for learning Rust
Stars: ✭ 7,431 (+8540.7%)
Mutual labels:  blog-article
csharp-design-patterns-for-humans-examples
Complete C# Examples Refereed in csharp-design-patterns-for-humans
Stars: ✭ 50 (-41.86%)
Mutual labels:  mediator-pattern

.NET Core HitCount License: MIT

MICROSERVICE TEMPLATE FOR CQRS AND MEDIATOR PATTERNS

WHAT PROBLEM DOES THIS SOLVE

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

This repo focuses on providing a C# dotnet core 3.1 microservice template with all the boilerplate setup completed, which enables the developer to start implementing their domain asap without having to go through the new service setup and the teething issues that goes along with it.

PATTERNS

  • CQRS
  • Mediator
  • Layered architecture

TECH STACK

  • Dotnet core 3.1
  • EF Core
  • Postgres
  • NUnit
  • Docker
  • Docker-Compose
  • RabbitMQ
  • Hangfire with Postgres as the backing store

GETTING STARTED

Docker

When Development/Testing

docker-compose -f docker-compose.testing.yml up -d

NOTE: You can change the db name in the Microservice.Db project remember to also update the connection settings in the Microservice.Api appsettings.json

Additional Links

What it does:

A dotnet CLI tool which follows the CQRS and Mediator patterns to auto generate commands, queries, responses and handlers in the domain layer using Roslyn API for code generation.

Roadmap

Features planned for next development cycle:

  • Refactor RabbitMQ and Hangfire for a more streamlined implementation
  • Move RabbitMQ Messagebroker implementation into a nuget package
  • Move Hangfire implementation into a nuget 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
  • Hangfire support *DONE
  • RabbitMQ support *DONE
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].