Crafting Modular Architecture

Tackle architecture issues
Cyrille Martraire

Crafting Modular Architecture

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.


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.

Agenda

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

What participants say about this workshop

"This workshop had a good technical level, both from content and instructor. A great overview of modern architecture practices. This workshop helped me to validate my knowledge and strenghthen my opinion about techniques."

"I liked the excellent communication and the amount of practical tasks we received. These sessions have improved my mindset on architecture and on DDD in particular."

"I enjoyed the very complete view of modern architecture practices. I will reflect on my work more before implementing it, and I might choose another role in my next assignments."

Cyrille Martraire

About Cyrille Martraire

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. Cyrille has experience in startups, software vendors and banks since 1999, but he 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.

All workshops by Cyrille Martraire
@cyriux

No dates are scheduled for this workshop. Let us know if you think we should organize it near you, or if you'd like to book it on premise in your organisation.


Also check out