Home > Store

Domain-Driven Design LiveLessons (Video Training)

Register your product to gain access to bonus material or receive a coupon.

Domain-Driven Design LiveLessons (Video Training)

Online Video

  • Your Price: $239.99
  • List Price: $299.99
  • Estimated Release: Apr 13, 2017
  • About this video
  • Video accessible from your Account page after purchase.


  • Copyright 2017
  • Edition: 1st
  • Online Video
  • ISBN-10: 0-13-459732-X
  • ISBN-13: 978-0-13-459732-4

4 Hours of Video Instruction

Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it.

Domain-Driven Design Distilled LiveLessons video training, based on the bestselling book Domain-Driven Design Distilled, covers the basics of DDD including: what it is, what problems it solves, how it works, and how to quickly gain value from it. This training focuses on what you need to know about DDD to get results.

Vaughn Vernon draws on several years of experience applying DDD to real-world situations. He is uniquely well-qualified to demystify its complexities, illuminate its subtleties, and help you solve the problems you might encounter.

Vernon guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Vernon shows how to use Subdomains to handle legacy systems and to integrate multiple Bounded Contexts to define both team relationships and technical mechanisms.


Related Books:

Domain Driven Design Distilled


Implementing Domain Driven Design



Skill Level

  • Intermediate

What You Will Learn

  • What DDD can do for you and your organization—and why it’s so important
  • The cornerstones of strategic design with DDD: Bounded Contexts and Ubiquitous Language
  • Strategic design with Subdomains
  • Context Mapping: helping teams work together and integrate software more strategically
  • Tactical design with Aggregates and Domain Events
  • Using project acceleration and management tools to establish and maintain team cadence

Who Should Take This Course

  • Domain-Driven Design Distilled LiveLessons brings DDD to life. Whether you’re a developer, architect, analyst, consultant, or customer, Vernon helps you truly understand it so you can benefit from its remarkable power.

Course Requirements

  • A practical understanding and use of a programming language, preferably an object-oriented language such as Java, C#, Scala, Ruby, Python, etc., or a functional programming language such as Scala, F#, or Haskell.
  • A desire to learn how to work closely with domain experts to gain in-depth knowledge into how the business works and its core drivers, and a determination to reject technology-only solutions.

Lesson Descriptions

Lesson 1: DDD for Me

Lesson 1 introduces you to the concepts behind DDD and why you should seriously consider putting DDD into practice on your projects. This lesson covers both the DDD strategic and tactical modeling tools, and why knowledge crunching is so important. It discusses how you can make use of DDD in a pain-free way. Then, it contrasts the good, bad, and effective design, and why effective design is superior. You are then introduced to DDD’s strategic design tools followed by an introduction to DDD’s tactical design tools. Next, the lesson covers the importance of learning with DDD and using DDD to refine your team’s knowledge of the business core domain. From here, you jump right in to using DDD.

Lesson 2: Strategic Design with Bounded Contexts and the Ubiquitous Language

Lesson 2 acquaints you with the all-important Bounded Context and Ubiquitous Language strategic design tools. After establishing a basic understanding of Bounded Context, the lesson discusses Domain Experts and following business drivers. Next, it looks at a case study where DDD is at first not used, and the pitfalls that commonly occur without DDD. Following this, it covers why fundamental DDD is needed to avoid the common pitfalls, and why it’s so important to follow the DDD approach. Next, using the fundamental DDD strategic modeling tools, you challenge the current case study model and unify your Ubiquitous Language within a Bounded Context. With this foundation, it’s now time to learn how to develop a Ubiquitous Language on your team. Finally, we look at some of the architectures and architecture patterns that can be used with DDD and what components are generally included in a Bounded Context.

Lesson 3: Strategic Design with Subdomains

Lesson 3 teaches you the advantages of using the Subdomains to overcome the complexity of integrating with legacy systems that don’t employ explicit and well-defined models. First, the lesson introduces you to the concept of a Subdomain and helps you to define what it is and why it is used. Next you look at what types of Subdomains there are in a DDD project. Finally, the lesson explains how Subdomains can be used to deal with the complexity of integrating with an unbounded legacy system, such as a Big Ball of Mud.

Lesson 4: Strategic Design with Context Mapping

Lesson 4 highlights Context Mapping and the various team relationships and integration techniques that can be used to manage how multiple Bounded Contexts will work in harmony to form a whole system solution. The lesson first introduces you to Context Mapping between Bounded Contexts. This leads to an examination of the various kinds of Context Mapping team relationships and integration techniques, including: Partnership, Shared Kernel, Customer-Supplier, Conformist, Anticorruption Layer, Open Host Service, Published Language, Separate Ways, and Big Ball of Mud. Next, the lesson takes a look at how you can make good use of Context Mapping and how to use Context Mapping with SOAP-based RPC, RESTful HTTP, and with messaging. Finally, an example is presented for using Context Mapping with messaging and REST.

Lesson 5: Tactical Design with Aggregates

Lesson 5 covers Aggregates which is a tactical modeling tool that helps you design small and efficient object clusters that manage consistency constraints using transactions. The lesson explains why Aggregates are used. Next, it introduces the four Aggregate Design Rules of Thumb. This is followed by techniques to use with modeling Aggregates. You then consider why you should choose carefully your level of abstraction when modeling Aggregates. Since it’s a goal to keep Aggregates small, this lesson will show you techniques for right-sizing Aggregates. Finally you learn how to ensure that Aggregates are designed as testable units.

Lesson 6: Tactical Design and Domain Events

Lesson 6 address the design and publication of Domain Events, a tactical modeling tool that actually also plays a big part in strategic integration. First, the lesson looks at designing, implementing, and using Domain Events. The lesson then covers Event Sourcing and shows you how it works.

Lesson 7: Acceleration and Management Tools

Lesson 7 shows you how you can accelerate your DDD modeling efforts and manage projects that employ DDD. In this lesson, you learn about Event Storming and how DDD is used in an Agile project. First, it shows you how to do Event Storming, a rapid modeling technique that helps the whole team learn and crunch knowledge. Next, it explains how to use DDD on an Agile project. Following this, the lessons explains how additional tools can be used in an Agile setting to help you analyze your current project situation. Since this lesson discusses the use of DDD on Agile projects, it makes sense to consider when to employ modeling spikes and when to incur modeling debt. Next, the lesson explains how to identify individual tasks and how to estimate the effort needed to implement the tasks. Finally, the lesson covers timeboxed modeling and when and how much time to use with Domain Experts.

About LiveLessons Video Training

LiveLessons Video Training series publishes hundreds of hands-on, expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. This professional and personal technology video series features world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, IBM Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home and Office Technologies, Business and Management, and more. View all LiveLessons on InformIT at: http://www.informit.com/livelessons.

Sample Content

Table of Contents


Lesson 1: DDD for Me



1.1 Will DDD Hurt?

1.2 Good, Bad, and Effective Design

1.3 Strategic Design

1.4 Tactical Design

1.5 The Learning Process and Refining Knowledge

1.6 Let’s Get Started!

Lesson 2: Strategic Design with Bounded Contexts and the Ubiquitous Language



2.1 Domain Experts and Business Drivers

2.2 Case Study

2.3 Fundamental Strategic Design Needed

2.4 Challenge and Unify

2.5 Developing a Ubiquitous Language

2.6 Architecture


Lesson 3: Strategic Design with Subdomains



3.1 What Is a Subdomain?

3.2 Types of Subdomains

3.3 Dealing with Complexity


Lesson 4: Strategic Design with Context Mapping



4.1 Kinds of Mappings

4.2 Partnership

4.3 Shared Kernel

4.4 Customer-Supplier

4.5 Conformist

4.6 Anti-corruption Layer

4.7 Open Host Service

4.8 Published Language

4.9 Separate Ways

4.10 Big Ball of Mud

4.11 Making Good Use of Context Mapping

4.12 RPC with SOAP

4.13 RESTful HTTP

4.14 Messaging

4.15 An Example in Context Mapping


Lesson 5: Tactical Design with Aggregates



5.1 Why Used

5.2 Aggregate Rules of Thumb

5.3 Modeling Aggregates

5.4 Choose Your Abstractions Carefully

5.5 Right-Sizing Aggregates

5.6 Testable Units


Lesson 6: Tactical Design with Domain Events



6.1 Designing, Implementing, and Using Domain Events

6.2 Event Sourcing


Lesson 7: Acceleration and Management Tools



7.1 Event Storming

7.2 Managing DDD on an Agile Project

7.3 First Things First

7.4 Modeling Spikes and Modeling Debt

7.5 Identifying Tasks and Estimating Effort

7.6 Timeboxed Modeling




Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership