mehdihadeli/food-delivery-modular-monolith
🌭 A practical and imaginary food and grocery delivery modular monolith, built with .Net 8, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tuần
#1 Repository Của Tuần
#2 Repository Của Tuần
🌭 Modular Monolith giao nhận thực phẩm — bản dùng thử .NET 10 đầy đủ công nghệ
Dự án mẫu không hướng tới sản phẩm thực, tập trung hoàn toàn vào kiến trúc và công nghệ.
Food Delivery Modular Monolith là một ứng dụng mẫu .NET 10 áp dụng kiến trúc Modular Monolith kết hợp Vertical Slice Architecture, CQRS, Domain-Driven Design và Event-Driven Architecture. Ứng dụng chia thành bốn module rõ ràng (Catalogs, Identity, Custom…) với mỗi module tự chịu trách nhiệm một bounded context. Public API nhận request và điều phối tới module tương ứng. Giao tiếp bất đồng bộ giữa các module dùng Wolverine (host-owned) với hàng đợi PostgreSQL durable; giao tiếp đồng bộ dùng module client API khi cần.
✨ Điểm nổi bật
- Modular Monolith: chia ứng dụng thành các module độc lập, dễ bảo trì và mở rộng.
- Vertical Slice Architecture: mỗi tính năng được cấu trúc thành một slice riêng lẻ, giảm độ phứ tạp.
- CQRS & Event-Driven: tách biệt lệnh và truy vấn, hỗ trợ xử lý sự kiện bất đồng bộ qua Wolverine.
- PostgreSQL-backed messaging: dùng local inbox/outbox của Wolverine kết hợp PostgreSQL để đảm bảo tin nhắn không mất.
- Domain-Driven Design: mô hình hóa domain rõ ràng với bounded context và aggregate.
- Wolverine: runtime messaging bền vững, hỗ trợ durable queues và integration events.
- OpenTelemetry & Health Checks: giám sát và kiểm tra sức khỏe hệ thống tích hợp sẵn.
- IdentityServer & JWT: xác thực và phân quyền người dùng an toàn.
💡 Vì sao đáng chú ý
Không phải là kiến trúc microservices đầy phức tạp, Modular Monolith mang lại hiệu năng và tính đơn giản trong khi vẫn giữ được tính chia tách module rõ rệt — lý tưởng cho dự án đang phát triển hoặc nhóm nhỏ. Sự kết hợp giữa Wolverine và PostgreSQL cho messaging durable giúp tránh việc thêm message broker bên ngoài, giảm chi phí triển vọng ban đầu. Dự án còn hỗ trợ testing toàn diện với integration testing và NSubstitute, giúp kiểm thử logic nghiệp vụ dễ dàng.
#ModularMonolith #DotNet #DDD #CQRS #EventDriven #Wolverine #TiniX
Similar Projects
Discover other similar projects and AI models.
Full Modular Monolith application with Domain-Driven Design approach.
🍔 A practical and cloud-native food delivery microservices, built with .Net Aspire, .Net 10, Wolverine, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
A Ruby implementation of an Event Store based on Active Record
A Ruby implementation of an Event Store based on Active Record
Clean Architecture Solution Template: A proven Clean Architecture Template for ASP.NET Core 10
Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.
Task management system based on .NET 8 with Microservices, DDD, CQRS, Event Sourcing and Testing Concepts
Framework for Evolutionary Message-Driven Microservices on the JVM