Software Architecture Superstream: Domain-Driven Design and Event-Driven Architecture
Published by O'Reilly Media, Inc.
Domain-driven design and event-driven architecture are inherently flexible and scalable, allowing organizations to build systems based on actual usage and needs. Whether you’re examining the viability of these concepts or trying to make the most of an ongoing implementation, these sessions offer expert guidance on maximizing their value to your organization.
About the Software Architecture Superstream Series: This five-part series of half-day online events focuses on the hottest topics in software architecture, giving you the insights to keep pace with what’s next while still accommodating legacy needs. Both seasoned software architects and those looking to break into the field will learn new skills and the latest information on the tools and technologies they need to succeed.
What you’ll learn and how you can apply it
- Learn how to use bounded contexts when defining your architecture
- See how event-driven patterns and domain-driven design can help when restructuring your monolith
- Get a glimpse of the future of domain-driven design and event-driven architectures
This live event is for you because...
- You're a senior-level developer who wants to make the move to architect.
- You're a practicing software architect who wants to hone your skills and learn new software architecture techniques and practices.
- You want to better understand how domain-driven design supports microservices-style architectures.
- You want to find out how event-driven architectures can help with integrating data in a distributed system.
Prerequisites
- Come with your questions
- Have a pen and paper handy to capture notes, insights, and inspiration
Recommended follow-up:
- Read Software Architecture: The Hard Parts (book)
- Read Learning Domain-Driven Design (book)
- Watch Software Architecture Fundamentals (video)
- Read Domain-Driven Design: Tackling Complexity in the Heart of Software (book)
- Watch Event-Driven Microservices (video)
- Take Fundamentals of Event-Driven Microservices (live online training course with Adam Bellemare)
- Read Data Mesh (book)
- Take Domain-Driven Design and Event-Driven Microservices (live online training course with Matt Stine)
- Take Domain-Driven Design: First Steps (live online training course with Andrew Harmel-Law)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Neal Ford: Introduction (5 minutes) - 8:00am PT | 11:00am ET | 4:00pm UTC/GMT
- Neal Ford welcomes you to the Software Architecture Superstream.
Matt Stine: Domain-Driven Design and Event-Driven Microservices (55 minutes) - 8:05am PT | 11:05am ET | 4:05pm UTC/GMT
- New architectural paradigms like microservices and evolutionary architecture—along with the challenges associated with managing data and transactional contexts in distributed systems—have generated a renewed interest in disciplined software design and modular decomposition strategies. The secret to obtaining the benefits of these architectures is getting the boundaries right, at both the team and the component and service levels, and then keeping them right as the software continues to evolve. This allows you to create a unified and ubiquitous language within the bounded contexts those boundaries enclose, facilitating productive and coherent conversations between the business and engineering sides of your organization. Fortunately, there's a mature, battle-tested approach to domain modeling and system decomposition that’s a perfect complement to these architectures: domain-driven design (DDD). Join Matt Stine to learn more.
- Matt Stine is an executive director of software engineering in JPMorgan Chase’s Chief Technology Office. He’s a 20-year veteran of the enterprise IT industry, seven of them spent as a consulting solutions architect for multiple Fortune 500 companies as well as the not-for-profit St. Jude Children’s Research Hospital. Matt’s the author of Migrating to Cloud-Native Application Architectures and the host of the Software Architecture Radio podcast. He spends much of his time thinking about Lean/Agile software development methodologies, DevOps, architectural principles, patterns, and practices, and programming paradigms, in an attempt to find the perfect storm of techniques that will allow corporate IT organizations to not only function like startup companies but also create software that delights users while maintaining a high degree of conceptual integrity.
- Break (5 minutes)
Zhamak Dehghani and Danilo Sato: Data Mesh and Domain Ownership—Four Principles of Data Mesh (45 minutes) - 9:05am PT | 12:05pm ET | 5:05pm UTC/GMT
- Data mesh is a paradigm shift in big analytical data management that addresses some of the limitations of the past paradigms, the data warehouse and the data lake. Data mesh is founded on four principles: domain-driven ownership of data, data as a product, a self-serve data platform, and federated computational governance. Zhamak Dehghani and Danilo Sato focus on the principle of domain-driven ownership of data, explaining what it means and why it’s so important. Along the way, they’ll share approaches to tackle some of the most common challenges around identifying domain boundaries and contrast data mesh with a more traditional centralized approach to master data management. Join in to learn how to get started on the journey toward a domain-driven approach to data ownership.
- Zhamak Dehghani is the director of emerging technologies in North America at Thoughtworks, with a focus on distributed systems and big data architecture. She has a deep passion for decentralized technology solutions, the foundations for democratization: data mesh, decentralized trust and identity, and networking protocols. She founded the concept of data mesh in 2018 and since has been evangelizing the concept with the wider industry. Zhamak is a member of the Thoughtworks Technology Advisory Board and contributes to the creation of the Thoughtworks Technology Radar. She’s worked as a technologist for over 20 years and has contributed to multiple patents in distributed computing communications and embedded device technologies.
- Danilo Sato is head of data and AI services at Thoughtworks UK, where he’s responsible for building high-performing teams to solve clients’ most complex data problems. Since joining Thoughtworks as a consultant in 2008, he’s led technical projects in many areas of architecture and engineering, including software, data, infrastructure, and machine learning. Danilo is the author of DevOps in Practice, a book on reliable and automated software delivery, and he’s spoken at conferences around the world.
- Break (5 minutes)
Caito Scherr: Sweet Streams Are Made of These (45 minutes) - 9:55am PT | 12:55pm ET | 5:55pm UTC/GMT
- The strength of a powerful stream processing engine is in how much data it can process and how fast. This naturally adds complexity to existing integration points and can lead to development overhead. Luckily, there’s a set of data-driven development principles built to alleviate precisely these challenges. Join Caito Scherr to explore these principles in detail and learn how to apply them at various points throughout the development process, using real-world successes (and failures!) as examples. Although the examples are about highly complex systems, this talk will be beginner friendly and applicable to nonstreaming use cases.
- Caito Scherr is a software-engineer-turned-developer-advocate. Based in Portland, Oregon, she represents the US region for Ververica (formerly Data Artisans, the creator of Apache Flink). She has presented her work with stream processing and data analytics at various meetups and conferences (mainly in the US and Europe). Outside of tech, she loves running, dance, woodworking, and terrible puns.
- Break (5 minutes)
Carola Lilienthal: It’s All About the Domain, Honey! Experiences from 15 Years of Domain-Driven Design (50 minutes) - 10:45am PT | 1:45pm ET | 6:45pm UTC/GMT
- We use great technologies, programming languages, and tools when building software. That’s good and right. But unfortunately, we often lose sight of the fact that the decisive factor isn’t the technology but the business domain. If we don’t map the domain language and the business processes in our software, then it won’t help our users in their work. No technology in the world can protect us from this. Join Carola Lilienthal to learn how to identify problems in an existing legacy system that could be solved with domain-driven design. You’ll discover how to divide the large entities that are used all over the system into smaller entities according to the business domain, how to cut the source code into bounded contexts, and more—all illustrated with examples from analysis tools that will help you see the system on the level above the source code.
- Carola Lilienthal is managing director of WPS - Workplace Solutions GmbH. She’s been developing software architectures according to the principles of domain-driven design with her teams for more than 15 years and has been regularly analyzing the future viability of software architectures on behalf of her customers since 2003. She’s author of Sustainable Software Architecture and translated Vaughn Vernon’s Domain-Driven Design Distilled into German.
Allard Buijze: Event-Driven Architecture—Less About Events Than You’d Think (Sponsored by AxonIQ) (30 minutes) - 11:35am PT | 2:35pm ET | 7:35pm UTC/GMT
- The way we approach designing messaging between components in a distributed system is a key element in successfully implementing reactive systems. However, we often make the step to event-driven architecture a bit too quickly. Join Allard Buijze to learn the best way to move to an event-driven architecture, based on his 12 years of experience applying domain-driven design, command-query responsibility separation, and event sourcing. You’ll see how considering these concepts can uncover interesting patterns that may address many of the challenges when implementing event-driven systems, even when you don’t apply these concepts to the final product.
- Allard Buijze is founder and CTO of AxonIQ. He’s had a great passion for programming since the age of 6. In more recent years, he’s guided both large and small organizations in building performant and scalable applications. Now he’s on a mission to make it easier to implement large-scale systems, using the concepts of domain driven design, command-query responsibility separation, and event-driven architectures.
- This session will be followed by a 30-minute Q&A in a breakout room. Stop by if you have more questions for Allard.
Neal Ford: Closing Remarks (5 minutes) - 12:05pm PT | 3:05pm ET | 8:05pm UTC/GMT
- Neal Ford closes out today’s event.
Upcoming Software Architecture Superstream events:
- Soft Skills Are the Hardest Part - June 22, 2022
- Software Architecture Fundamentals - September 28, 2022
- Architecture Meets Data - November 30, 2022
Your Host
Neal Ford
Neal Ford is a director, software architect, and meme wrangler at Thoughtworks, a software company and a community of passionate, purpose-led individuals who think disruptively to deliver technology to address the toughest challenges, all while seeking to revolutionize the IT industry and create positive social change. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture. Neal’s authored several books, a number of magazine articles, and dozens of video presentations (including a video on improving technical presentations) and spoken at hundreds of developer conferences worldwide. His topics of interest include software architecture, continuous delivery, functional programming, and cutting-edge software innovations. Check out his website, Nealford.com