DDD Europe 2022 - Program

Crafting Modular Architecture


Cyrille Martraire

Cyrille Martraire

Objectives: This presentation brings together everything you need to know to be able to tackle architecture issues in companies calmly, on systems that can be complex. It is derived directly from state of the art and is validated by our years of experience with customers.

During this course you will:

Become acquainted with the main architectural patterns and styles and the state of the art Design, document and present a pragmatic architecture Solve the main problems of an architecture in production Identify couplings and modularity criteria Decouple components and manage scalability and availability Gain an overview of the entire software system Presented by experts with extensive personal experience in architecture in different contexts, this course mixes theoretical presentations with exercises that will enable participants to really get involved and intensify their understanding.

Architecture in a corporate or business context involves highly technical factors, as well as significant human issues; this is why this course covers both of these facets, in order to provide a complete overview of the topic.

Programme Introduction to Architecture

The multiple definitions of technical architecture: a question of stability, large scale, shared knowledge, irreversible decisions Architecture as a means of aligning a company’s objectives with its information systems Architecture as implementation styles Global vs. local architecture, Umbrella diagrams Overview of architectural styles

Hexagonal Architecture Event-Driven Architecture Pipeline Microservices Enterprise Integration Patterns (EIP, Greqor Hohpe), Integration styles PoEAA (Fowler) API design Emerging Architecture Technical Architecture

Configuration, Discovery Asynchronous messaging Data consistency: Golden Source, replication, autonomy vs. authority Fault-tolerance, load balancing Stateless vs stateful, consequences, stickiness & affinity, managing sessions Logging & tracing guidelines Monitoring: guidelines, tools, alerting Integration in practice: reconciliation, data migration Test-Driven Architecture, metrics, static analysis Architecture Documentation

The importance of communication in architecture, techniques and tips Living Documentation applied to architecture : Evergreen Overview Document, Internal Documentation with annotations and coding conventions Living Diagrams generated with each build Legacy migration patterns

Extension by Federated Service Strangler Application Legacy Read Model Architecture & SDGs

Overview of Bounded Contexts and Context Mapping Overview of Large-Scale Structures of DDD General Information This course is aimed at experienced developers, team leads, architect managers, but also at experienced or aspiring architects.

Course Requirements:

Knowledge of different programming languages with good object design skills. Previous experience in software development. Participants must have a workstation with a development environment. Teaching Materials:

The trainers will distribute the teaching materials in PDF form at the end of the course.

Teaching Methods:

30% Theoretical, 70% Practical

About Cyrille Martraire

Deliberate DesignerTwitterLinkedInBlogCompany Website

Cyrille Martraire (@cyriux) is CTO and partner at Arolla (@ArollaFr), the founder of the Paris Software Craftsmanship community and a regular speaker at international conferences. With 20 years of experience in startups, software vendors and banks, Cyrille still calls himself a developer. He's passionate about design in every aspect: TDD, BDD and in particular DDD.

Cyrille also has an extensive knowledge of capital market finance, and he's the author of the book Living Documentation published by Addison-Wesley Professional in summer 2019.