DevStore: Your Gateway to Understanding Microservices in E-Commerce
DevStore is a comprehensive reference application designed to showcase the implementation of sophisticated e-commerce solutions using microservices with ASP.NET 6. Developed by the team at desenvolvedor.io, this project serves as a valuable resource for the technical community, demonstrating best practices in building complex applications with .NET technologies.
Inspiration and Motivation
DevStore draws inspiration from the renowned EShopOnContainers project. While EShopOnContainers provides a great framework, DevStore sees itself as a cleaner and more approachable version. It’s a refined alternative, focusing on precision and attention to detail, particularly within the ASP.NET web architecture.
Engagement with DevStore
If DevStore interests you or aids you in your development projects, consider giving it a star to show your appreciation!
Learning Resources
For those eager to build applications like DevStore, desenvolvedor.io offers courses—albeit in Portuguese—that cover topics from ASP.NET Core expertise to software architecture.
Technological Backbone
DevStore utilizes a host of modern technologies and components to ensure a robust and efficient application. These include:
- .NET 6: Incorporating ASP.NET MVC Core, WebApi, Minimal API, and more.
- Components: From RabbitMQ and Refit to MediatR and Swagger UI with JWT support.
- Hosting Options: Compatible with IIS, NGINX, and Docker (with compose options).
Architectural Design
The project embraces a complete architecture, integrating major principles such as:
- Hexagonal Architecture, Clean Code, and Clean Architecture
- Domain-Driven Design (DDD)
- CQRS for immediate consistency
- Essential design patterns like the Retry Pattern, Circuit Breaker, and Unit of Work
Application Framework
DevStore's application framework is extensive, based primarily on a unified solution with seven APIs and a single MVC web application. Each microservice operates within its own database, reflecting the Domain-Driven Design concept of bounded contexts. There is an API Gateway/BFF to streamline basket, order, and payment requests and response structures.
Getting Started
Running DevStore is flexible and accommodates various operating systems—with docker as a prerequisite. There are multiple setup options, ranging from using Docker Compose for quick deployment to a more traditional build process via Visual Studio or VS Code.
Steps for Manual Setup
- Docker-Only Setup: Quickly deploy using docker-compose commands.
- Visual Studio Setup: Requires Visual Studio 2022, .NET 6, and possibly Docker for database handling.
- VS Code Setup: Use launch configurations to start projects efficiently within the editor.
Important Considerations
DevStore is not intended to be an architectural template for new apps, but rather a learning tool to share industry-relevant knowledge. Users are encouraged to avoid unnecessary complexity in their own implementations.
Collaboration and Community
DevStore is open to collaboration! Interested developers should initiate discussions through issues before contributing pull requests.
Experience DevStore
The project is live and can be explored at DevStore official instance.
A Project Proudly Built
DevStore is proudly developed and maintained by the team at desenvolvedor.io, showcasing Brazilian innovation under the MIT license.