Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Domain Models in Practice

Course Summary

The Domain Models in Practice course is designed to teach students how to build semantic yet simple software that correctly serves its purpose.

The course begins by exploring the technical relationship between code, culture, and architecture and learning how to model and implement software from a business perspective. Next, students will learn how to scale applications so that any number of queries can be handled, while also maintaining a behavior rich domain models that can deal with complex scenarios. Students will also discover how EventSourcing enables the building of highly cohesive and decoupled modules and changes the way tests are written and communicated about forever. These patterns will help students put their energy where the business value is, by providing a model that encourages teams to be partitioned by expertise and outsourcing the busy work. Drawing from Domain-Driven Design (DDD) concepts, this course covers writing code with Command Query Response Segregation and how Event Sourcing tells a story in domain terms. The course concludes with students learning how to keep software system designs in line with the organization's needs, improve readability, and strengthen communications with key stakeholders.

Students should have experience in building software. Students will benefit from coming prepared with knowledge of DDD, CQRS, and Event Sourcing, but this is not a prerequisite.

Purpose
Learn about the technical relationship between code, culture, and architecture and how to model and implement software from a business perspective.
Audience
This course is designed for junior and senior Architects and Developers with a strong interest in DDD and modern message-driven architectures.
Role
Business Analyst - Data Engineer - Data Scientist - Project Manager - Q/A - Software Developer - System Administrator - Technical Manager - Web Developer
Skill Level
Intermediate
Style
Workshops
Duration
3 Days
Related Technologies
Domain-Driven Design

 

Productivity Objectives
  • Describe DDD and when it applies.
  • Model the problem domain and explore multiple solutions to choose from.
  • Align design with business needs using CQRS and DDD.
  • Build scalable and decoupled applications with Event Sourcing.

What You'll Learn:

In the Domain Models in Practice training course, you'll learn:
  • Domain-Driven Design overview - Essential ideas and terminology
  • Why, how and when to apply Domain-Driven Design
  • Cynefin - Different levels of complexity in strategic design
  • Making sense of your domain with various EventStorming flavors
  • Bounded Context Mapping - Align your architecture with your organizational structure
  • Modeling with Value Types, Entities and Aggregates
  • Tactical DDD Patterns - Exercises in implementing domain models
  • Hexagonal Architecture - Ports and Adapters in action
  • Handling intent instead of editing data
  • Events - Atomic building blocks of your domain
  • Lossless semantic persistence with Event Sourcing
  • Testing with events and commands
  • Decoupling bounded contexts through events
  • CQRS overview - Essential ideas and terminology
  • Implementing read models
  • Projecting streams of events into poly structured information
  • Domain model performance optimization
  • Dealing with scalability and eventual consistency
  • Implementing policies with Sagas
  • Strategies for long-lived, evolving event-sourced systems
  • Strategies for distributed systems
  • Benefits, risks and socio-technical implications of CQRS and Event Sourcing
  • Optional: Application of CQRS & Event Sourcing in front-end development
  • Bring it all together: Full roundtrip from modeling to implementation in practice
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”

VMware

Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.