A microservices-based food delivery application built with Azure Service Fabric and .NET 8, featuring restaurant management, menu services, order processing, courier coordination using actors, and real-time notifications.
This solution demonstrates a distributed system architecture with multiple stateful and stateless services communicating via Service Fabric Remoting, implementing patterns such as outbox pattern for reliable messaging, partitioning for scalability, and actor model for courier state management.
- GatewayAPI - ASP.NET Core Web API gateway for client requests
- RestaurantService - Manages restaurant data and orders
- MenuService - Handles menu categories and items
- OrderService - Processes orders and manages shopping carts
- CourierStorageService - Manages courier availability
- CourrierActor - Actor-based courier state management
- NotificationService - Sends order status notifications
- Contracts - Shared models, DTOs, and service interfaces
- Ensure you have Azure Service Fabric SDK and .NET 8 installed
- Open the solution in Visual Studio 2022
- Set the Service Fabric application project as the startup project
- Press F5 to deploy to the local Service Fabric cluster
- TestSimulationApp - Console application for end-to-end testing
- ChaosTesting - Chaos engineering tests for resilience validation
- .NET 8
- Azure Service Fabric
- ASP.NET Core
- Service Fabric Reliable Services
- Service Fabric Actors
- Service Fabric Reliable Collections