connorjs / MaxTrainDomainDrivenDesign

Max Train Domain Driven Design in C#

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MaxTrainDomainDrivenDesign

Max Train Domain Driven Design in C#

Open in Gitpod

Introduction

  1. What is it that you do?
  2. What is your title?
  3. What is your experience in C#/.Net?
  4. What is your experience with Domain Driven Design?
  5. What is your experience with Container/Kubernetes?
  6. What do you like to do for Zen? a. Family Time b. Walking/Hiking c. Cycling d. Board Games, Video Games e. Reading f. Badminton g. Gardening

Week 1/Day 1

  1. What Domain-Driven Design Teaches
  2. The Purpose of DDD
  3. Subdomains: Core, Supporting, and Generic
  4. Bounded Contexts
  5. Mixing Subdomains and Bounded Contexts
  6. Relationship between Microservice and Subdomains and Bounded Contexts
  7. Context Mapping
  8. Lab: Context Mapping
  9. Immutability
  10. Value Objects
  11. Entities
  12. Aggregates
  13. Lab: Create an Aggregate Boundary

Week 1/Day 2

  1. Domain Events
  2. Active Record
  3. Transaction Script
  4. Lab: Creating Effective Active Record & TXScripts with Test Containers
  5. Layered Architecture
  6. Hexagonal Architecture
  7. Lab: Refactoring into Hexagonal Architecture
  8. Event Storming
  9. Lab: Event Storming
  10. Domain Events

Week 1/Day 3

  1. Circuit Breaker
  2. Lab: Circuit Breaking a Problematic Service
  3. Bulkhead
  4. Lab: Create Separate Bulkheads to prevent saturation
  5. Retry
  6. The risk of retrying
  7. Lab: Creating Retry Strategies
  8. Ambassador Pattern, the Sidecar
  9. Purpose and Reasoning for the Sidecar
  10. Establishing Ambassadors in Kubernetes with Istio
  11. Final Questions
  12. Conclusions

Week 2/Day 1

  1. Tying in the Domain Events from the first week
  2. Event Sourcing
  3. How do you craft an event?
  4. How do we emit events in our design?
  5. How long should we hold events?
  6. Introduction to Kafka
  7. Kafka Architecture
  8. Pub/Sub Architecture
  9. Sharding and Consistent Hashing
  10. Creating a Producer
  11. Lab: Creating a Producer
  12. Acknowledgments (Ack),

Week 2/Day 2

  1. Creating a Kafka Consumer
  2. Lab: Creating a Kafka Consumer
  3. Preventing Data Loss with Exactly Once Semantics
  4. Kafka Streams
  5. Lab: Kafka Streams
  6. KSQLDB
  7. Lab: KSQLDB
  8. Kafka Connect - Connecting the Kafka to Databases and MQ
  9. Change Data Capture
  10. Lab: Kafka Connect
  11. Materialized Views
  12. CQRS: Command Query Responsibility Segregation
  13. Lab: CQRS

Week 2/Day 3

  1. Event-Driven Architecture
  2. Service Brokers & Service Broker APIs
  3. Strangler Fig Deploying Services Gradually
  4. Lab: Strangler Fig
  5. Preventing Data Loss
  6. Deconstructing the Monolith to Microservices
  7. Microservices - Bounded Context or Subdomain?
  8. Why shouldn't you go too micro in microservices
  9. Microservice tips & best practices
  10. Data Storage and Ownership Today
  11. Lab: Discuss your plans for your company
  12. Final Questions
  13. Conclusion

About

Max Train Domain Driven Design in C#


Languages

Language:C# 98.2%Language:Gherkin 1.8%