Training: Domain-Driven Design with Message- and Event-Driven Architectures

Location: Marquis A&B, 9th fl.

Duration: 9:00am - 4:00pm

Day of week: Thursday and Friday

Level: Intermediate

Key Takeaways

  • Essential DDD, with strategic and tactical design, including developing a Ubiquitous Language in a Bounded Context
  • Bounded Contexts, Core Domain, Subdomains, and Context Mapping
  • Domain Events and Aggregates
  • Project acceleration and management tools
  • Learn the basics of Event Storming using “big picture” and “design level” modeling
  • Apply your storming results to actual implementations using Aggregates and Domain Events
  • Use Domain Events to integrate with multiple Bounded Contexts
  • The tradeoffs of using traditional domain model persistence and Event Sourcing

Prerequisites

Much of two days will be spent implementing using Java or C#. At least 5-10 years of programming experience is recommended. You are required to supply your own computer, programming environment with build and test facilities that you use regularly, and your thinking cap.

Systems today are far more likely to be distributed, especially due to the ever-increasing popularity of the cloud and microservices, and they’re also increasingly asynchronous and message- and event-driven, and thus reactive. Learn how to deal with these and other influencing conditions using domain-driven design.

Join Vaughn Vernon to explore the foundational architectures on which today’s software is reliably built and the advanced architecture patterns that are necessary for distributed, reactive microservices software. You’ll get hands-on experience with the essential strategic and tactical tools for domain-driven design and the architectures and patterns used to develop contemporary advanced systems.

You will learn about, create diagrams, and write code for DDD Bounded Contexts and architectures and architecture patterns. Here is what to expect:

  • Essential Domain-Driven Design
  • Ports and Adapters (Hexagonal, Clean)
  • Commands, Events, and Queries
  • Message- and Event-Driven Architectures
  • REST as Messaging
  • CQRS (Command-Query Responsibility Segregation)
  • Event Sourcing
  • Messaging with the Actor Model
  • Integration and Collaboration with Bounded Contexts
  • Modeling Uncertainty

Speaker: Vaughn Vernon

DDD Expert, Author of "Implementing Domain-Driven Design" & Architect @kalele_io

Vaughn Vernon is a software developer and architect with more than 30 years of experience in a broad range of business domains. Vaughn is a leading expert in Domain-Driven Design, and a champion of simplicity and reactive systems. He consults and teaches around Domain-Driven Design and reactive software development, helping teams and organizations realize the potential of business driven and reactive systems as they transition from technology driven legacy web implementation approaches. As he does so, he puts strong emphasis on embracing simplicity whenever possible. Vaughn is the author of three books: Implementing Domain-Driven Design, Reactive Messaging Patterns with the Actor Model, and Domain-Driven Design Distilled, all published by Addison-Wesley.

Find Vaughn Vernon at

Other Workshops:

Day: Thursday [Half Day]
by
Day: Thursday [Half Day]
by
Day: Friday [Full Day]
Day: Thursday [Half Day]
by

Tracks

Monday, 24 June

Tuesday, 25 June

Wednesday, 26 June

  • Architecting For Failure

    More than just building software, building deployable production ready software in the face of guaranteed failure.

  • 21st Century Languages

    Lessons learned from building languages like Rust, Go-lang, Swift, Kotlin, and more.

  • Building High-Performing Teams

    What “high-performing team” means and how to build one effectively depends on context. This track will share different experiences of building high-performing teams in order to highlight how different contexts lead to different solutions but also what typically stays the same because we’re still dealing with humans trying to work together. How do different forces affect the building of high-performing teams.

  • Software Defined Infrastructure: Kubernetes, Service Meshes, & Beyond

    Deploying, scaling, managing your services is undifferentiated heavy lifting. Hear stories, learn techniques, and dive deep into software infrastructure.

  • High-Performance Computing: Lessons from FinTech & AdTech

    Killing latency and getting the most out of your hardware.