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.
Patterns, AntiPatterns, and Pitfalls
Pattern Trade-offs
Which Patterns Do I Need?
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
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
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?
Teaching Agents About Patterns
Capability References
Context References
Qualitative Analysis
Comparative Analysis
Agentic Recommendations
Class Exercises
This workshop is for you if you are: