Edocti Training
Enterprise Software Architecture & Design Masterclass
Scheduled sessions
No sessions are available at the moment.
Skills You Will Learn
Requirements Analysis (SRS to OOA)
Architecture Decision Records (ADRs)
Macro Modeling (C4 Model & Context/Containers)
Domain-Driven Design (Strategic & Tactical Boundary Mapping)
Detailed Design (Clean & Hexagonal Architecture)
12-Factor App & Cloud-Native Compliance
Advanced UML (Use Case, Class, Component, Sequence, Deployment)
Distributed Data Patterns (CQRS & Event Sourcing)
Fault Tolerance & Resilience Engineering
Architecture Evaluation (ATAM Lite & Governance)
Curriculum
Foundations of software architecture & requirements analysis
- Overview of software architectural design: high-level architecture vs. detailed design
- Attributes of a good requirement: reading, validating, and establishing SMART criteria in an SRS
- Quality attributes for a design: introducing performance, security, reliability, scalability, and maintainability
- Capstone Project Kickoff: analyzing a complex business SRS to extract the initial conceptual model
- Object-Oriented Analysis (OOA): extracting core actors, main verbs/actions, and business entities
- Lab: modeling system boundaries and primary actors with UML Use Case diagrams
Architectural thinking, trade-offs & documentation
- Architectural drivers: identifying business, technical, and organizational constraints
- Architecture for quality attributes (Part 1): performance engineering and security architecture fundamentals
- Architecture trade-off analysis: balancing conflicting quality attributes (e.g., security vs. performance)
- Architecture Decision Records (ADRs): deep dive into Nygard/MADR templates, lifecycles, and Y-statements
- Visualizing macro architecture: introduction to the C4 Model (Context and Container levels)
- Lab: setting up the central architecture repository and drafting the first ADRs in Git
- Lab: macro-level modeling with C4 Level 1 (System Context) and Level 2 (Container) diagrams
Microservices fundamentals
- Core principles of microservices: autonomy, statelessness, and decentralized data patterns
- Architecture for quality attributes (Part 2): design strategies for high scalability and elasticity
- The 12-Factor App methodology: conceptual breakdown for modern cloud-native SaaS applications
- Lab: operational readiness assessment—auditing Capstone requirements against 12-factor principles
- Lab: designing deployment topologies that support autoscaling and elastic compute nodes
Domain-Driven Design (DDD) as a microservice boundary
- Strategic DDD: Ubiquitous Language, Bounded Contexts, and mapping team autonomy
- Deconstructing complex business domains into decoupled microservice boundaries
- Tactical DDD foundations: aggregates as state machines, entities, value objects, and repositories
- Lab: applying domain analysis (lightweight Event Storming or Domain Storytelling) on the Capstone SRS
- Lab: defining the system's microservice boundaries and modeling root aggregates/repositories
Detailed design: Tactical architecture (Clean & Hexagonal)
- Architecture for quality attributes (Part 3): designing decoupled systems for high maintainability & evolvability
- Clean Architecture vs. Hexagonal Architecture (Ports & Adapters) design patterns
- The Dependency Rule: protecting the domain core from databases and web frameworks
- The Synergy: mapping Hexagonal ports to network bindings and adapters to 12-factor backing services
- Lab: creating an application skeleton and designing internal pachete/folder structures for a core microservice
- Lab: detailed low-level design using UML Class diagrams with DDD stereotypes and UML Component diagrams for ports/adapters
- Lab: establishing traceability by linking detailed UML elements to specific ADR files in Git
Advanced distributed systems & data management
- The CAP Theorem, PACELC, and data consistency models (strong vs. eventual consistency)
- Architecture for quality attributes (Part 4): ensuring high reliability & fault tolerance in distributed environments
- Resilience patterns: deep dive into Circuit Breakers, Retries, Timeouts, and Bulkheads
- Advanced data patterns: CQRS (Command Query Responsibility Segregation) and Event Sourcing
- Lab: low-level dynamic design using UML Sequence diagrams and UML Communication diagrams for event broker flows
- Lab: physical modeling with UML Deployment diagrams showing containers, API gateways, and distributed databases
- Lab: drafting ADRs for distributed data consistency and resilience strategies
Architecture evaluation, governance & capstone defense
- Architecture evaluation methodologies: using ATAM (Architecture Tradeoff Analysis Method) Lite
- Identifying structural rotting: technical debt, architectural smells, and anti-patterns
- Continuous Architecture: automating structural governance using automated Fitness Functions
- Lab: Peer ATAM cross-evaluation—swapping UML models and ADR repositories for deep security and quality audits
- Lab: evolutionary architecture simulation—adapting the architecture to sudden disruptive business shifts using Superseded ADRs
- Lab: Capstone Finale—presenting and defending the final architectural and detailed design to an Architecture Review Board
Optional modules
Optional — Migrating legacy monoliths to event-driven architectures
- The Strangler Fig pattern for database and code migration step-by-step
- Change Data Capture (CDC) with Debezium and Kafka as a transitional strategy
Course Day Structure
- Part 1: 09:00–10:30
- Break: 10:30–10:45
- Part 2: 10:45–12:15
- Lunch break: 12:15–13:15
- Part 3: 13:15–15:15
- Break: 15:15–15:30
- Part 4: 15:30–17:30