Skip to content
  • Sign In
  • Try Now
View all events
Domain-Driven Design

Domain-Driven Design Boot Camp

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

Hands-on DDD with code examples

The term domain-driven design (DDD) was coined by Eric Evans in his seminal book, Domain-Driven Design: Tackling Complexity in the Heart of Software, written in 2003, and was well ahead of its time. DDD is an extremely useful tool for designing scalable systems and platforms as well as the basis for designing better microservices architecture. On the data side, DDD is useful for building distributed data architectures including data mesh.

Join expert Sandeep Jagtap to get hands-on in this two-day workshop that will help you better understand how to use domain-driven design to split teams along domains and to design better microservice-style architectures. You’ll learn the DDD vocabulary and strategic patterns like bounded context, ubiquitous language, and context maps, and you’ll come to understand the domain layer and its importance in the overall success of a project. Throughout the course, you’ll complete exercises in which the name of the domain-driven design concept is initially hidden until you code the problem statement, and then it will be revealed. Using simple coding use cases, you’ll learn DDD from the bottom up to understand how current and existing code bases can be refactored to use DDD. Lastly, the course will focus on how DDD helps in the design of better microservices and distributed data architectures.

NOTE: With today’s registration, you’ll be signed up for both sessions.

What you’ll learn and how you can apply it

By the end of this live, hands-on two-part series, you’ll understand:

  • The relationship between DDD and microservices
  • Tactical and strategic DDD patterns
  • Domain model as the primary and most important layer in three-tier and hexagonal architecture
  • Domain events, which are the basis for event-driven architecture

And you’ll be able to:

  • Come up with a microservice using the DDD aggregate concept
  • Design and evolve better boundaries for microservices using DDD
  • Understand the domain layer and its importance in the overall success of a project
  • Apply DDD tactical patterns to existing code bases

This live event is for you because...

  • You’re a developer who wants to understand DDD fundamentals.
  • You're an architect who wants to apply DDD language for better microservices architecture.
  • You work with distributed data and want to understand DDD.

Prerequisites

  • A computer set up with the IDE of your choice (IntelliJ IDEA community edition is acceptable)
  • You can use any programming language for the workshop (Java, C#, Python, Ruby, Kotlin, Scala, Javascript, TypeScript, Go), but please create a repository for the language of your choice before joining the live event (see sample repository for Java/gradle)
  • Two years of software development experience (such as Java, C#, JavaScript, Kotlin, Scala, Ruby, Python, Go, etc.)

Recommended follow-up:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Day 1

Using domain-driven design (60 minutes)

  • Presentation: The what/why/when of domain-driven design; domain-driven design and friends; What is domain layer in the context of 3-tier and hexagonal architecture?
  • Hands-on exercises: Problems 1 and 2
  • Showcase
  • Q&A
  • Break

Code problems (40 minutes)

  • Hands-on exercises: Problems 3–5
  • Showcase
  • Q&A

DDD Concept 1 (20 minutes)

  • Presentation
  • Q&A
  • Break

Code problem (15 minutes)

  • Hands-on exercise: Problem 6
  • Showcase
  • Q&A

DDD Concept 2 (30 minutes)

  • Presentation
  • Hands-on exercise: Code problem 7
  • Showcase
  • Q&A

DDD Concept 3 (15 minutes)

  • Presentation
  • Q&A

Day 2

Code problem (15 minutes)

  • Hands-on exercise: Problem 8
  • Showcase
  • Q&A

DDD Concept 4 (10 minutes)

  • Presentation
  • Q&A

Code problems (35 minutes)

  • Hands-on exercise: Problems 9 and 10
  • Showcase
  • Q&A
  • Break

DDD Concept 5 (25 minutes)

  • Presentation
  • Q&A

Code problem (15 minutes)

  • Hands-on exercise: Problem 11
  • Showcase
  • Q&A

DDD Concept 6 (20 minutes)

  • Presentation
  • Q&A
  • Break

DDD Concepts 7 and 8 (20 minutes)

  • Presentation
  • Q&A

Recap (10 minutes)

  • Presentation
  • Q&A

Modular monolith (10 minutes)

  • Presentation
  • Q&A

Brief on event sourcing, CQRS, and event storming (20 minutes)

  • Presentation
  • Group discussion
  • Q&A

Your Instructor

  • Sandeep Jagtap

    Sandeep Jagtap is principal consultant for Thoughtworks India, where he has worked for 15 years. He’s a proponent, enthusiast, and practitioner of domain-driven design, with experience in building scalable systems using DDD, event sourcing and CQRS. During his 23 years of experience in the industry, he’s also served in roles such as developer, tech lead, tech principal, and architect.

    linkedinXlinksearch