Masterclass

Software Architecture Patterns and AntiPatterns

About

Architects, agents, and developers are all faced with difficult questions when creating or maintaining a system’s architecture:  When do I need an architecture? How do I know what architectural patterns I should use for a specific capability or context? How much data should I include in the event payload? How specific should my contract be? How do I iterate on an architecture? How can I improve throughput and capacity in my system?

This 2-day hands-on workshop is meant to teach you about architecture patterns—repeatable and proven techniques that teams can apply to solve hard problems in architecture, and also anti-patterns—things teams commonly do that lead them down a bad path.

In this workshop you’ll learn about general architecture patterns as well as those applied in distributed architectures such as event-driven architecture and microservices. Along the way, you’ll gain an understanding of when to apply the pattern and the consequences and trade-offs of each.

Using qualitative analysis, you’ll be able to determine which set of architecture patterns are best suited to your specific business problem and context.

Course contents

Introduction

Patterns, AntiPatterns, and Pitfalls

Pattern Trade-offs

Which Patterns Do I Need?

 

Part 1: AntiPatterns

Architecture By Implication: When do I need an architecture?

Stovepipe Architecture: How do I iterate on an architecture?

Stamp Coupling: How specific should my contract be?

Class Exercises

 

Part 2: Pitfalls

Microservice All The Things: Should I make everything a microservice?

Grains of Sand: Are my services too small?

Frozen Caveman: Should I only Base My Decisions of Past Experiences?

Class Exercises

 

Part 3: Patterns

Workflow Patterns

Introduction to Workflows

Orchestration: How should I manage my workflows?

Choreography: How should I manage my workflows?

Front Controller: How should I manage my workflows?

Workflow Event: How do I handle workflow errors?

Class Exercises

Asynchronous Patterns

Introduction: Messages or Events?

Class Exercises

Async Chain of Persistence: How do I prevent message loss?

Extensible Events: Should I trigger an event even if no one is listening for it (yet)?

Contextual Events: How many events should I trigger from a single service?

Data-Based Event Contracts: How much data should I include in the event payload?

Key-Based Event Contracts: How much data should I include in the event payload?

Class Exercises

Thread Delegate: How do I guarantee message processing order?

Supervisor Consumer: How can I improve message throughput?

 

Part 4: AI Agents and Architectural Patterns

Teaching Agents About Patterns

Capability References

Context References

Qualitative Analysis

Comparative Analysis

Agentic Recommendations

Class Exercises

Target audience and prerequisites

This workshop is for you if you are:

  • a programmer
  • a hands-on architect
  • technical team lead
21
 - 22 October 2026