This demo uses principles from Event Driven Architecture to show how using events will change the way you whould design your database.
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
- 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
Application to access the Domain Model and create events through the business logic layer.
The business logic layer.
Shared files between the business logic layer and the data access layer (seperated to avoid circular references between the two layers).
Cosmos DB specific services that are responsible for storing events in the database.
- Clone the repo
- Download and install Azure Cosmos DB Emulator
- Start Cosmos DB Emulator
- Run the Console-project
- Open Cosmos Db Emulator Explorer to see the data in the database
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.