Most Popular

Implementing Modern Architecture

To be a successful architect, one needs to understand the pros and cons of different architectures and under what conditions they are applied in a project. In addition, a good knowledge of the development process and production support is also very valuable.

In this training, we will go on a journey starting with the definition of architecture and continuing with Domain-Driven Design, System Architecture, coding it, and finishing with running our Architecture in production. Participants will also learn about the pitfalls of misapplying architectural styles to certain problems. We’ll also cover topics like Microservices, CQRS, Hexagonal Architecture, Event Sourcing, System stability, Development quality, and more.

Duration
3 days
Level
Advanced
Format

20% workshop /

80% lecture

Max Participants
20
Instructors
2
Who Should Attend

Architects, Team Leads, Senior Developers

Key Takeaways
  • Architecture trade-offs: monolith, modular monolith, microservices
  • Strategic and tactical Domain-Driven Design
  • Synchronous and asynchronous communication patterns
  • Hexagonal architecture and coding your architecture
  • CQRS and event sourcing fundamentals
  • Running in production: stability, security, and monitoring
Training Program

Day 1

  • Architecture and Architects
    • What is "architecture"?
    • What is good architecture?
    • Who is a good architect?
    • Architectural drivers
  • Domain-Driven Design
    • Why use DDD?
    • How to discover a Bounded Context?
  • System Architecture
    • Monolith
    • Microservices
    • Modular Monolith
    • How to make a choice?
    • A path from Monolith to Microservices
  • Documenting your Architecture
    • Sharing main decisions
    • Visualizing architecture

Day 2

  • Communication
    • Synchronous and Asynchronous communication
    • Commands vs Events
    • Big and Small Events
    • Message Naming
    • Event Choreography and Orchestration
    • Message Concurrency
    • Message Processing Order
    • Dealing with Errors
    • Idempotent Consumers
    • Outbox and Inbox
  • REST API
    • General principles
    • Task-based REST API
    • Dealing with Errors: Problem Details
  • Coding your Architecture
    • Project structure
    • Applying Hexagonal Architecture principles
    • Folder structure
    • Code quality automation

Day 3

  • Tactical Domain-Driven Design
    • Designing Aggregates and Value Objects
    • Ensuring Invariants in Domain Model
  • Command Query Responsibility Segregation
  • Event Sourcing: advantages and challenges
  • Stability of your System
    • Common failures and stability antipatterns
    • Stability patterns
  • Securing your System
  • Monitoring your System
    • Aspects of monitoring
    • Metrics to expose

Ready to Get Started?

Contact us to discuss your training needs, schedule, and how we can customize this program for your team.

Implementing Modern Architecture | Trainitek