May 4-7, 2021
9:00 AM - 12:30 PM (MDT)
Breaking a large domain into subsystems is an exercise that many companies are going through when they kick off a new project or decide to migrate from a monolith architecture to microservices. The approach of creating a number of loosely coupled software services promises to bring a lot of benefits. These include improving team autonomy, reducing lead time, being able to innovate, and other traits that describe accelerated delivery cycles.
In theory, by making services smaller we should be able to improve the metrics and benefit from a new architecture, but such an approach is missing an important point. If we want to have truly autonomous teams and services that are not tightly coupled with each other, first we need to understand the domain.
In this training session, we will dive into exploring and understanding the domain - our problem space. With this knowledge, we will be able to design a loosely coupled microservice system aligned with business needs and organizational structure. In order to achieve these goals, the participants will learn and use a number of tools and techniques. Starting with Big Picture Event Storming, through choosing boundaries using Design Heuristics, and validating them with Message Flows. Next, we will be evaluating contexts with Core Domain Charts, designing teams using Team Topologies, formalizing contexts with Bounded Context Canvas, and ending on aggregate modeling with Aggregate Design Canvas.
Senior Software Developers, Architects, Principles, and Technical Product Managers responsible for leading the discovery and delivery efforts of complex software systems.
No prior DDD experience is required, but this workshop is targeted at senior people and assumes experience with building systems with multiple teams collaborating with each other.
Minimum 5 years of professional background, experience working on software projects involving multiple teams and systems.
Kacper Gunia is an independent software consultant with 10 years of experience in the industry. He built applications and systems for clients including Starbucks, Time Inc, FeelUnique, Johnston Press & William Hill. On a daily basis he supports and trains client’s teams on using right technologies, processes and approaches such as Domain-Driven Design, Iterative delivery, CI/CD & Functional Programming.