Fast Delivery Management is a microservice-based delivery application designed to streamline the management of orders, identity, and tracking. Leveraging the power of Dapr, it ensures efficient and scalable service-to-service communication, with robust integrations for databases, message queues, logging, and more.
The application is structured following the principles of Clean Architecture, ensuring separation of concerns and maintainability. The use of CQRS and the Mediator pattern further enhance the scalability and responsiveness of the system.
- ❇️ Using
Vertical Slice Architecture
for architecture level. - ❇️ Using
Domain Driven Design (DDD)
to implement all business processes in microservices. - ❇️ Using
Rabbitmq
on top ofMassTranit
forEvent Driven Architecture
between our microservices. - ❇️ Using
CQRS
implementation withMediatR
library. - ❇️ Using
Entity Framework Core
for some microservices. - ❇️ Using
MongoDB
for some microservices. - ❇️ Using
Fluent Validation
and aValidation Pipeline Behaviour
on top ofMediatR
. - ❇️ Using
Health Check
for reporting the health of app infrastructure components. - ❇️ Using
Built-In Containerization
forDocker
images. - ❇️ Using
Zipkin
for distributed tracing. - ❇️ Using
OpenIddict
for authentication and authorization base onOpenID-Connect
andOAuth2
. - ❇️ Using
Yarp
as a microservices gateway.
Fast Delivery is a sample project that consumes the microservice framework. You will learn a lot by exploring this project, which is located under the ./Fast Delivery
folder.
Services | Status |
---|---|
Gateway | WIP 🚧 |
Identity | WIP 🚧 |
Orders | WIP 🚧 |
Tracking | WIP 🚧 |
Rider | WIP 🚧 |
Payment | WIP 🚧 |
The Fast Delivery
project comes included with the required docker-compose.yaml.
There are some prerequisites for using these included docker-compose.yml files:
-
Make sure you have docker installed (on windows install docker desktop)
-
go to root folder and open terminal and run:
docker-compose up
.NET 8
- .NET Framework and .NET Core, including ASP.NET and ASP.NET CoreDapr
- Dapr provides integrated APIs for communication, state, and workflow. Dapr leverages industry best practices for security, resiliency, and observability.MVC Versioning API
- Set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET CoreEF Core
- Modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrationsMediatR
- Simple, unambitious mediator implementation in .NET.FluentValidation
- Popular .NET validation library for building strongly-typed validation rulesSwagger & Swagger UI
- Swagger tools for documenting API's built on ASP.NET CoreSerilog
- Simple .NET logging with fully-structured eventsELK
- Visualize logs with kibanaOpenIddict
- OpenIddict aims at providing a versatile solution to implement OpenID Connect client, server and token validation support.Mapster
- Convention-based object-object mapper in .NET.Yarp
- Reverse proxy toolkit for building fast proxy servers in .NETMongoDB.Driver
- .NET Driver for MongoDB.
Read Documentation related to this Boilerplate here -
Docs are not yet updated.
This project is licensed with the MIT license.
Has this Project helped you learn something New? or Helped you at work? Here are a few ways by which you can support.
- Leave a star! ⭐
- Recommend this awesome project to your colleagues. 🥇
This project exists thanks to all the people who contribute. Submit your PR and join the elite list!