Software Architecture Deep Dive

This 2-day hands-on software architecture deep dive training course leverages some of the material from the 3-day software architecture fundamentals course to take a much deeper dive into application and integration architecture, specifically in areas of modular, distributed architectures (Microservices and Service-Based Architecture). Like the 3-day class, this class is designed to prepare you to become an effective software architect by introducing more detailed and targeted topics in software architecture, complete with plenty of architecture katas to exercise the concepts and patterns described in the course. 

This course will first take a deeper dive into application architecture and data patterns. You'll learn why architecture modularity is so critical in today's world, and also the migrations patterns used to move from traditional n-tiered layered architectures to modular monolithic applications and microservices. This section of the course also covers dozens of application architecture patterns in areas of event-driven processing, distributed data patterns, data synchronization and caching, service communication patterns, patterns for high performance, and finally advanced application configuration patterns that support self-configuring systems. 

Knowing that applications rarely act alone, this course will then cover many topics surrounding integration architecture. Included in this part of the course will be a detailed discussion of how to integrate modular, distributed applications like microservices,  integration styles, API gateways, and integration hubs. You'll learn why hubs and gateways are sometimes necessary, the role they play, and how to solve many gateway and hub issues like performance, single point of failure issues, as well as how to organize teams around integration hub standards and governance. Leveraging coding examples, this course will then dive into several of the common integration architecture patterns and show how they work and when to use each integration pattern. 

Whether you've been an architect for several years or on the path to becoming an architect, this course will help you learn some of the more detailed aspects of application, integration, and enterprise architecture to help you along your journey to becoming an effective software architect.

Course Agenda

Architectural Modularity

  • Drivers for Modularity
  • Comparing Modular Architectures
  • Microservices vs. Service-Based Architecture

Application Migration Patterns

  • Modular Monolith Migration
  • Microservices Migration
  • User Interface Considerations

Distributed Data

  • Distributed Data Issues
  • Creating Data Domains
  • Handling Common Data
  • Deferred Data Migration

Event-Driven Services

  • Event-Driven Capabilities
  • Asynchronous Processing
  • Kafka vs. Standard Messaging
  • Request/Reply Pattern
  • Asynchronous Error Handling
  • Leveraging Embedded Messaging

Data Synchronization and Caching Patterns

  • Creating High-Performance Microservices
  • Data Versioning
  • Cloud-Based Data Synchronization
  • Managing Cache Sync Failures
  • Database Change Control Patterns
  • Sharing Data in a Microservices Ecosystem
  • Data Consolidation Patterns (Data Bus)

Service Communication Patterns

  • Inter-Service Communication Optimization
  • API Gateways and API Proxy Layers
  • Consumer Supervisor Pattern
  • Orchestration pattern
  • Aggregation pattern

High Performance Patterns

  • Embedded Messaging
  • Thread Delegate Pattern
  • Parallel Loader Pattern

Configuration Patterns

  • Threshold Adjust Pattern
  • Self-Aware and Self-Learning Algorithms
  • Watch Pattern

Integration Styles and Protocols

  • File Transfer
  • Shared Database
  • Remote Procedure Invocation / Web Services
  • Messaging

Gateways and Hubs

  • Integrating Microservices Ecosystems
  • System Abstraction and Independent Evolution 
  • Resolving Single Point of Failure Issues
  • Resolving Performance Bottleneck Issues
  • Mediator vs. Processor Roles
  • Governance and Standards Strategies
  • Creating Modular Integration Hubs

Integration Patterns

  • Consumer Producer Integration Pattern
  • Wiretap Integration Pattern
  • Splitter Integration Pattern
  • Transformation Integration Pattern
  • Message Enhancement Integration Pattern
  • Integration Katas (exercises)

© Mark Richards 2017