Software Architecture Superstream: Domain-Driven Design and Event-Driven Architecture
Published by O'Reilly Media, Inc.
Learn how to utilize these frameworks and maximize their value to your organization
Domain-driven design and event-driven architecture are inherently flexible and scalable, allowing organizations to build systems based on actual usage and needs. Well-built event-driven architectures maximize your system’s responsiveness, performance, scalability, and elasticity, while domain-driven design helps you collaborate with domain experts, tapping into their existing mental models and consequently building deep insight into the problems you’re trying to solve.
Unfortunately, with all this power comes a fair amount of complexity—building an event-driven architecture and fully grokking domain-driven design are both really hard. But this event can help.
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
- Understand how to design, build, and evolve adaptive systems and team structures for a fast flow of change
- Learn what the future holds for event-driven architecture
This live event is for you because...
- You're a software architect or developer working on or thinking about working on event-driven architectures and want to learn best practices.
- You want to learn more about domain-driven design (DDD) and the collaboration between developers and domain experts to ensure the right thing is built.
Prerequisites
- Come with your questions
- Have a pen and paper handy to capture notes, insights, and inspiration
Recommended follow-up:
- Read Learning Domain-Driven Design (book)
- Read Building Event-Driven Microservices (book)
- Watch Domain-Driven Design Distilled (video course)
- Take Domain-Driven Design: First Steps (live course with Andrew Harmel-Law)
- Take Event-Driven Architecture and Data (live course with Adam Bellemare)
- Take Mastering Patterns in Event-Driven Architecture (live course with Mark Richards)
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 | 3:00pm UTC/GMT
- Neal Ford welcomes you to the Software Architecture Superstream.
Alina Liburkina and Oliver Zihler: Event Storming, DDD, and Clean Architecture (45 minutes) - 8:05am PT | 11:05am ET | 3:05pm UTC/GMT
- One of the most important aspects of domain-driven design is the close collaboration between developers and domain experts to ensure the right thing is built. Domain modeling allows you to explore the business domain at hand so that bounded contexts for relevant business subdomains can be defined. The close exchange between domain experts and developers also allows the creation of a ubiquitous language for each identified bounded context. But how do you explore the business domain effectively so that both developers and domain experts profit maximally and the eventual software artifact does what it is supposed to do? Alina Liburkina and Oliver Zihler show you how to use the event storming method to explore the domain of a fictional business to derive bounded contexts, and they’ll represent the domain knowledge gained as code in their interpretation of clean architecture.
- Alina Liburkina is a software engineer with a passion for DDD, clean code, refactorings, and hexagonal and clean architecture. She’s a co-organizer of the Tech Excellence Community and works as a trainer, promoting and introducing XP techniques to teams she works with. She has successfully implemented clean architecture in legacy systems and applied DDD techniques for their modularization. Alina loves to share her knowledge with others through pair or social programming, presentations, or hands-on workshops.
- Oliver Zihler is an enthusiastic extreme programmer, trainer, and content creator and a co-organizer of the Tech Excellence Community. He teaches clean code, refactoring techniques, ports and adapters, clean architecture, DDD, and other related topics to anyone who wants to improve their craft. As a software engineer, he continues to improve on and apply these techniques to both the frontend and backend.
Amal Tahri: Evolution Patterns of Sociotechnical Systems (45 minutes) - 8:50am PT | 11:50am ET | 3:50pm UTC/GMT
- Sociotechnical systems are nonlinear, dynamic systems that are constantly changing to provide continuing value to customers. But they can exhibit complex and unpredictable behavior—and understanding the evolution patterns of these systems is important for anticipating their behavior, designing improvement trajectories, and managing change. Amal Tahri explores evolution in its broadest scope using real-world use cases and combining software evolution with organizational dynamics and human interactions to identify evolution patterns in sociotechnical systems. She also discusses the impact of leadership and decision-making on the success or failure of these cases.
- Amal Tahri is a passionate sociotechnical system thinker and IT architect with 10 years of experience. She focuses on the implications of organization and people interactions on architecture decisions and system evolution and promotes domain-driven design tools to align strategic business objectives with tactical outcomes. Amal believes in leveraging communication to build a collaborative and generative working culture optimized for success.
- Break (10 minutes)
Susanne Kaiser: Architecture for Flow—Wardley Mapping, DDD, and Team Topologies (45 minutes) - 9:45am PT | 12:45pm ET | 4:45pm UTC/GMT
- In a world of rapid change and increasing uncertainty, organizations have to continuously adapt and evolve to remain competitive and excel in the market. In such a dynamic business landscape, organizations need to design for adaptability. Susanne Kaiser shows you how combining different perspectives and techniques from business strategy, software architecture and design, and team organization provides a powerful toolset to design, build, and evolve adaptive systems and team structures. She illustrates the concepts and demonstrates how the techniques can help evolve a legacy system for a fast flow of change.
- Susanne Kaiser is an independent tech consultant from Hamburg, Germany, supporting organizations building sociotechnical systems. She’s the author of Adaptive Systems with Domain-Driven Design, Wardley Mapping, and Team Topologies: Architecture for Flow. She’s passionate about connecting the dots between Wardley mapping, domain-driven design, and team topologies as a holistic approach to designing and building adaptive systems. Previously, she was CTO for a startup and has experience in software development and software architecture.
Sean Chittenden: The Architecture and Business Value of Event-Driven Systems (Sponsored by Cockroach Labs) (30 minutes) - 10:30am PT | 1:30pm ET | 5:30pm UTC/GMT
- Sean Chittenden, field engineer at Cockroach Labs, explains the architecture of event-driven systems and the business value of making your transactional workloads real-time. Batch operations are a relic from the past and should be done in real time. They’re expensive and a missed opportunity to act on data when it’s most useful. Customer experience demands that businesses think in real time and adjust to data insights in real time.
- Sean Chittenden is an accomplished expert in databases and high-availability distributed systems, renowned for proficiency in PostgreSQL and CockroachDB, and dedicated to delivering practical insights into contemporary database technologies.
- This session will be followed by a 30-minute Q&A in a breakout room. Stop by if you have more questions for Sean.
- Break (5 minutes)
Tim Berglund: Event-Driven Architectures Done Right—Apache Kafka (45 minutes) - 11:05am PT | 2:05pm ET | 6:05pm UTC/GMT
- Developers and architects are increasingly adopting Kafka with enthusiasm. Often it’s not just a good choice but a technology that enables meaningful improvements in complex, evolvable systems that need to respond to the world in real time. For medium- and large-scale systems, an event-first perspective may be the most helpful one, but it's early days, and it's still possible to get it wrong. Tim Berglund looks at common mistakes in event-driven systems built on top of Kafka, such as ignoring schema management, writing bespoke consumers when stream processing is a better fit, using stream processing when you really need a database, or trivializing the task of elastic scaling in all parts of the system.
- Tim Berglund is a teacher, author, and technology leader with StarTree, where he serves as vice president of developer relations. He’s a regular speaker at conferences and a presence on YouTube for the purpose of explaining complex technology topics in an accessible way. He lives in Littleton, Colorado, and has three grown children and two grandchildren, a fact about which he is rather excited.
Neal Ford: Closing Remarks (5 minutes) - 11:50am PT | 2:50pm ET | 6:50pm UTC/GMT
- Neal Ford closes out today’s event.
Upcoming Software Architecture Superstream events:
- Data Architecture Styles and Patterns - November 1, 2023
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
