Pacco is an open source project using microservices architecture written in .NET Core 3.1. The domain tackles an exclusive parcels delivery which revolves around the general concept of limited resources availability. Pacco does use an event-driven approach in order to asynchronously integrate between the microservices.
Find out more about distributed systems patterns and practices in Microservices .NET online course and check out our article about starting Pacco microservices and infrastructure. The solution is maintained by devmentors.io.
The overall solution makes use of the cloud agnostic tools and most of them can be found under cncf.io. To easily plug into the complex infrastructure, Convey is being used.
Depending on the particular microservice complexity, either the clean architecture + DDD approach (as presented below) is used or another style that is the best fit.
Please clone the following repositories and put them into the same working directory:
- Pacco
- Pacco.APIGateway
- Pacco.Services.Availability
- Pacco.Services.Customers
- Pacco.Services.Deliveries
- Pacco.Services.Identity
- Pacco.Services.Operations
- Pacco.Services.OrderMaker
- Pacco.Services.Orders
- Pacco.Services.Parcels
- Pacco.Services.Pricing
- Pacco.Services.Vehicles
The above repositories can be also cloned via git-clone.sh script and updated via git-pull.sh script. Simply, copy the scripts to the directory next to the Pacco
on your local drive, and execute them using shell. Inside Pacco
, you will also find Pacco.sln that aggregates all the microservices under a single solution, in order to make it easier to work with during the local development.
Open Pacco/compose
directory and execute:
docker-compose -f infrastructure.yml up -d
It will start the required infrastructure in the background. Then, you can start the services independently of each other via dotnet run
or ./scripts/start.sh
command in each microservice repository or run them all at once using Docker:
docker-compose -f services-local.yml up
You can find the list of all HTTP requests in Pacco-sample-scenario.rest file placed in the root folder of Pacco.APIGateway repository. This file is compatible with REST Client plugin for Visual Studio Code.