Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Build An Event Store In C# .Net For Cqrs And Event Sourcing

Posted By: ELK1nG
Build An Event Store In C# .Net For Cqrs And Event Sourcing

Build An Event Store In C# .Net For Cqrs And Event Sourcing
Published 10/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 8.09 GB | Duration: 7h 19m

Build an Event Store in C#. NET for Event-Driven Architectures using CQRS, Event Sourcing and Domain-Driven Design

What you'll learn

Understand the importance of using business (domain) events as a source of truth in your solution.

Understand how to use and implement the ubiquitous language in your source code.

Understand how to build an event store, how it functions, and how to use it properly.

Understand how to separate a system between read and write functions to optimize flow and performance by using CQRS.

Understand how to use Domain-Driven Design (DDD) in your solution using aggregate roots.

Understand what projections are and how to program projections.

Understand how to publish domain events and failure events.

Understand what snapshots are and how to use them properly.

Understand what read-models are and how to implement them.

Requirements

It is not entirely required but it would be helpful to know how to program in C#. If you are a Java developer, you can easily convert the concepts or even the source code to Java.

Description

Real-time communication and feedback to your customers are more important then ever. Customers have become used to immediate feedback on the actions they take in your software. It is very hard in create, read, update, and delete (CRUD) based applications to provide this sort of responsiveness that your customers are demanding. Event-based solutions that are based on CQRS, Event Sourcing, and Domain-Driven Design (DDD) can offer deep insides in real-time to your customers and to your business. More importantly, you won't loose data in an event-sourced solution when compared to CRUD-based solutions because your solution will be able to provide the context on why changes happened and record changes into an immutable log, the event store.In this course, you will learn about the importance of using domain events as your source of truth instead of pieces of data that are incomplete in CRUD-based applications. You will be able to tell stories on what happened when and why. You will be able to answer future questions by your customers and business even though you may not have all the requirements at hand when you design and build your event-sourced solution.At the very heart of your solution will be the event store. The event store is the source of truth in your entire solution. We will be building an event store in C#. NET and utilizing AWS DynamoDB as the persistence mechanism. However, the provided C# source code can easily be converted to Java or other languages. For the actual persistence, you could also use MySQL, PostgreSQL, MongoDB, and others. The C# code is abstracted so that can you can re-use it for specific persistence implementations. The concepts and code can work for on-premise, cloud only, or hybrid models. For an example read model implementation, we will be creating a read model using MySQL in AWS.Once you understand the power of even sourcing, you won't go back.

Overview

Section 1: Introduction

Lecture 1 Introduction

Lecture 2 Course Structure

Lecture 3 Source Code in C#

Section 2: Event Sourcing

Lecture 4 What is Event Sourcing?

Lecture 5 The Business Insights of Event-Sourced Systems

Lecture 6 The Technical Advantages of Event-Sourced Systems

Lecture 7 Building your own Event Store vs. using a third party solution

Section 3: CQRS

Lecture 8 What is CQRS?

Lecture 9 Implementing a Command

Lecture 10 Implementing Command Handlers

Lecture 11 Queries

Section 4: Domain-Driven Design (DDD)

Lecture 12 Implementing Aggregate Roots

Section 5: Event Store

Lecture 13 High-Level Architecture

Lecture 14 What database should you use?

Lecture 15 Using AWS DynamoDB as an Event Store

Section 6: Implementing an Event Store

Lecture 16 Overview of the components we will build

Lecture 17 Data flow within the architecture and how the event store will operate

Lecture 18 Implementing DynamoDB Tables by Hand

Lecture 19 Implementing DynamoDB Tables with CloudFomration

Lecture 20 Creating a DynamoDB Event Store in C# and .NET Core

Lecture 21 How to manage concurrency violations

Lecture 22 Memory Event Store

Section 7: Snapshots

Lecture 23 What is a Snapshot

Lecture 24 Implementing a Snapshot

Section 8: Projections

Lecture 25 What is a Projection?

Lecture 26 Implementing a Projection

Section 9: Publishing and Consuming Domain Events

Lecture 27 Publishing and consuming domain events

Lecture 28 Implementing a consistent domain event publication process

Section 10: Read Models

Lecture 29 The importance of read models

Lecture 30 Implementing a read model in C# using MySQL on AWS

Section 11: Final Thoughts

Lecture 31 Final Thoughts

Developers and Architects who are curious about event-driven architectures by utilizing CQRS, Event Sourcing, and Domain-Driven Design (DDD).