Skip to content

This demo is written in C# 10 on .NET 6 and uses some Cosmos DB to store events

Notifications You must be signed in to change notification settings

abtion/event-driven-architecture-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Driven Architecture Demo

This demo uses principles from Event Driven Architecture to show how using events will change the way you whould design your database.

What is MusicRequestApp

Epic User Story

As a DJ I want to have an online system for song requests so that the guests at a party do not have to interact with me physically during a party

User Stories

  • As a party guest I want to request a song so that I can spread my love for music to everyone (whether they want to hear it or not)
  • As a DJ I want to see what songs have been requested
  • As a DJ I want to update the list of requests when I have played a song
  • As a DJ I want to reject a song request that I don't to play
  • As a party host I want to register my party so that guests can request songs

Projects

Console

Application to access the Domain Model and create events through the business logic layer.

DomainModel

The business logic layer.

DomainModel.Events

Shared files between the business logic layer and the data access layer (seperated to avoid circular references between the two layers).

Storage.CosmosDb

Cosmos DB specific services that are responsible for storing events in the database.

Getting Started

  1. Clone the repo
  2. Download and install Azure Cosmos DB Emulator
  3. Start Cosmos DB Emulator
  4. Run the Console-project
  5. Open Cosmos Db Emulator Explorer to see the data in the database

Future expansions

Firing events (messages) when an event is stored in the database to demonstrate the use of event handler / event consumers. The idea is to build up a projection layer that is stored in another container in Cosmos.

About

This demo is written in C# 10 on .NET 6 and uses some Cosmos DB to store events

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages