This project is based on the food-delivery-modular-monolith repository created by Mehdi Hadeli. All rights and credit for the original architecture, code, and design belong to the original author. This repository serves as a code example for educational purposes.
Follow the instructions in the how_to_run.md file to run the application.
This project provides a practical code example of a Food Delivery system implemented using the Modular Monolith architecture with .NET.
It demonstrates how to build a scalable and maintainable application using modern software engineering practices, including:
- Modular Monolith Architecture: Organizing the system into independent modules.
- Vertical Slice Architecture: Grouping code by features to minimize coupling.
- CQRS Pattern: Separating command (write) and query (read) responsibilities.
- Domain Driven Design (DDD): aligning the software model with the business domain.
- Event Driven Architecture: Facilitating asynchronous communication between modules using an In-Memory Bus (or external brokers).
💡 Purpose: This application is a technical demonstration. It focuses on implementing robust architecture patterns rather than being a fully-featured commercial product. It shows how modules like Catalogs, Orders, Customers, etc., interact within a single deployable unit while maintaining strict boundaries.