Kangaroo is containerized microservices application based on .NET Core. The project demonstrates how to develop small microservices for larger applications using containers, orchestration, service discovery, gateway, and best practices. You are always welcome to improve code quality and contribute it, if you have any questions or issues don't hesitate to ask in our gitter chat.
- Developing independently deployable and scalable micro-services
- Developing cross-platform beautiful mobile apps using React native
- Configuring CI/CD pipelines using Travis CI, Github Actions, automated deployments using Google Kubernetes Engine, Docker Containers
- Using modern technologies such as gRPC, RabbitMQ, Service meshes
- Writing clean, maintainable and fully testable code, Unit Testing, Integration Testing and Mocking practices
- Using SOLID Design Principles
- Using Design Patterns and Best practices such as DDD and CQRS
The architecture proposes a microservice oriented architecture implementation with multiple autonomous microservices (each one owning its own data/db) and implementing different approaches within each microservice (simple CRUD vs. DDD/CQRS patterns) using REST/HTTP as the communication protocol between the client apps, and supports asynchronous communication for data updates propagation across multiple services based on gRPC, Integration Events and an Event Bus(RabbitMQ)
№ | Service | Description | Build status | Endpoints |
---|---|---|---|---|
1. | Delivery API (DDD, CQRS, EF Core, Dapper, SQL Server) | Deals with Delivery book/orders and their statuses | View | |
2. | Courier API (CRUD, Repository, MongoDB) | Manages Couriers and their deliveries with real time tracking and delivery status updates | View | |
3. | Pricing API (Redis Cache, Google Maps API) | Calculates delivery price based on distance, delivery duration and goods weight. Uses Google Maps API | View | |
4. | Identity API(soon) (.NET Core + IdentityServer4) | Identity management service, powered by OAuth2 and OpenID Connect | (soon) | |
5. | Payment API(soon) (DDD, CQRS, Postresql) | Responsible for financial and payments | (soon) |
cd
to cloned repository and execute:
docker-compose up
Available services:
- Fork it
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -m 'Adds some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request
Code released under the MIT license.