Max Train Domain Driven Design in C#
- What is it that you do?
- What is your title?
- What is your experience in C#/.Net?
- What is your experience with Domain Driven Design?
- What is your experience with Container/Kubernetes?
- 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
- What Domain-Driven Design Teaches
- The Purpose of DDD
- Subdomains: Core, Supporting, and Generic
- Bounded Contexts
- Mixing Subdomains and Bounded Contexts
- Relationship between Microservice and Subdomains and Bounded Contexts
- Context Mapping
- Lab: Context Mapping
- Immutability
- Value Objects
- Entities
- Aggregates
- Lab: Create an Aggregate Boundary
- Domain Events
- Active Record
- Transaction Script
- Lab: Creating Effective Active Record & TXScripts with Test Containers
- Layered Architecture
- Hexagonal Architecture
- Lab: Refactoring into Hexagonal Architecture
- Event Storming
- Lab: Event Storming
- Domain Events
- Circuit Breaker
- Lab: Circuit Breaking a Problematic Service
- Bulkhead
- Lab: Create Separate Bulkheads to prevent saturation
- Retry
- The risk of retrying
- Lab: Creating Retry Strategies
- Ambassador Pattern, the Sidecar
- Purpose and Reasoning for the Sidecar
- Establishing Ambassadors in Kubernetes with Istio
- Final Questions
- Conclusions
- Tying in the Domain Events from the first week
- Event Sourcing
- How do you craft an event?
- How do we emit events in our design?
- How long should we hold events?
- Introduction to Kafka
- Kafka Architecture
- Pub/Sub Architecture
- Sharding and Consistent Hashing
- Creating a Producer
- Lab: Creating a Producer
- Acknowledgments (Ack),
- Creating a Kafka Consumer
- Lab: Creating a Kafka Consumer
- Preventing Data Loss with Exactly Once Semantics
- Kafka Streams
- Lab: Kafka Streams
- KSQLDB
- Lab: KSQLDB
- Kafka Connect - Connecting the Kafka to Databases and MQ
- Change Data Capture
- Lab: Kafka Connect
- Materialized Views
- CQRS: Command Query Responsibility Segregation
- Lab: CQRS
- Event-Driven Architecture
- Service Brokers & Service Broker APIs
- Strangler Fig Deploying Services Gradually
- Lab: Strangler Fig
- Preventing Data Loss
- Deconstructing the Monolith to Microservices
- Microservices - Bounded Context or Subdomain?
- Why shouldn't you go too micro in microservices
- Microservice tips & best practices
- Data Storage and Ownership Today
- Lab: Discuss your plans for your company
- Final Questions
- Conclusion