Skip to content

diasjason/EventDrivenServices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventDrivenServices

A fully runnable demonstration of event-driven architecture using .NET, RabbitMQ, and Docker Compose.

Purpose

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.

Key Features & Architecture Highlights

  • 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

Tech Stack

  • .NET (C#)
  • RabbitMQ (message broker)
  • Docker & docker-compose
  • Seq (structured logging)
  • SQL Server (local persistence)
  • Simple React-like UI for triggering events

Quick Start

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors