14 Software Architecture Patterns and AntiPatterns Every Architect Should Know
by Mark Richards
Patterns are repeatable processes that produce positive results and help teams solve hard problems in software architecture. AntiPatterns are the opposite—they are things teams do that can lead them down a bad path. In this hands-on workshop we’ll dive into some of the more significant architecture patterns and anti-patterns, looking at how they work, and what the trade-offs are for each one. By attending this workshop you’ll learn about various architecture patterns you can apply to ensure success—and various architecture anti-patterns that help you to avoid disaster.
Agenda:
Introduction
– Patterns, AntiPatterns, and Pitfalls
– Pattern Trade-offs
– Pattern Relationships
Part 1: Antipatterns
– Architecture By Implication: When do I need an architecture?
– Stovepipe Architecture: How do I iterate on an architecture?
– 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
– Orchestration: How should I manage my workflows?
– Choreography: How should I manage my workflows?
– Front Controller: How should I manage my workflows?
– Class Exercises
– Asynchronous Patterns:
– Extensible Events Pattern: Should I trigger an event even if no one is listening for it (yet)?
– Contextual Event Pattern: How many events should I trigger from a single service?
– Stamp Coupling Antipattern: How specific should my contract be?
– Data-Based Event Contract Pattern: How much data should I include in the event payload?
– Key-Based Event Contract Pattern: How much data should I include in the event payload?
– Workflow Event Pattern: How do I handle asynchronous errors?
– Class Exercises