A fully runnable demonstration of event-driven architecture using .NET, RabbitMQ, and Docker Compose.
This project shows how to achieve loose coupling, autonomy, and graceful degradation between services. It was created as a teaching tool and proof-of-concept during our monolith-to-microservices migration. I used it (along with the included PPTX) to get team and stakeholder buy-in.
- Publish/Subscribe messaging with RabbitMQ as the broker
- Idempotent event handlers and eventual consistency patterns
- Strategic data redundancy (services keep lightweight copies of needed data for resilience)
- Producers, consumers, and background workers in clean .NET services
- End-to-end observability with Seq structured logging
- Graceful degradation demo: UI and other services continue functioning even if one service is down
- Docker-first — everything spins up with a single command
- .NET (C#)
- RabbitMQ (message broker)
- Docker & docker-compose
- Seq (structured logging)
- SQL Server (local persistence)
- Simple React-like UI for triggering events
git clone https://github.com/diasjason/EventDrivenServices.git
cd EventDrivenServices
docker-compose up --build
docker-compose up
UI: http://localhost:7000/
RabbitMQ: http://localhost:15672/
Mail Server:http://localhost:4000/
Seq:http://localhost::5341/
SQL Server: localhost,1433