🏗 Architecture Patterns · Visual Learning Guide

From Monolith
to Microservices

A visual, hands-on guide to Service-Oriented Architecture and Microservices — when to use each, how they evolved, and the patterns that make them work.

MONOLITH SOA (2000s) MICROSERVICES UI Layer Business Logic Data Access 🗄 DB (single) evolves ESB Bus Orders Svc User Svc Payment Svc Inventory evolves Auth :3001 Orders :3002 Cart :3003 Payment :3004 Inventory :3005 Notify :3006 API Gateway 1970s – 1990s 2000s – 2010s 2010s → present

Three Eras of Architecture

Software architecture didn't jump from monolith to microservices overnight — it evolved through hard-won lessons over decades.

Era 1 · 1970s–1990s

🏢 The Monolith

Everything in one deployable unit. The UI, business logic, and database access compiled and shipped together. Simple to develop and debug — until the codebase grows and teams multiply.


// All in one process app/ ├── controllers/ ├── services/ ├── models/ └── main.jar ← deploy EVERYTHING

✓ Simple deploy ✓ Easy debug ✗ Coupled scaling ✗ Long build times
🏢
🔌
Era 2 · 2000s–2010s

🔌 Service-Oriented Architecture

Enterprises decomposed monoliths into coarse-grained services connected by an Enterprise Service Bus (ESB). Contracts via WSDL, communication via SOAP. Solved the tangle — but introduced the ESB as a new bottleneck.


✓ Reusable services ✓ Loose coupling ✗ ESB = bottleneck ✗ Heavy XML/SOAP
Era 3 · 2010s–Present

⚡ Microservices

Netflix, Amazon, and Uber pioneered running hundreds of small, independently deployable services communicating via lightweight HTTP/REST or message queues. Docker and Kubernetes made this operationally feasible at scale.


✓ Independent deploy ✓ Polyglot stacks ✓ Fine-grained scale ✗ Distributed complexity

Service-Oriented Architecture

SOA brought modularity to the enterprise — but at the cost of a heavy central bus. Understanding SOA makes you a better microservices architect.

🔌

What is SOA?

SOA is an architectural style where software components expose their functionality as services with well-defined interfaces. Services are reusable, loosely coupled, and communicate over a network.

The 4 core principles: service contract (explicit interface), loose coupling, abstraction (hide internals), and reusability (shared across consumers).


WSDL contracts WS-Security WS-* standards
🚌

The Enterprise Service Bus (ESB)

The ESB is SOA's central nervous system — middleware handling message routing, transformation, protocol mediation, and orchestration. Powerful but a single point of failure.

ESB CRM Service ERP Service HR Service Web App Mobile Partner API
📋

SOAP vs REST

SOA traditionally used SOAP — an XML-based protocol with formal contracts (WSDL). Modern SOA often uses REST for lighter communication.

<!-- SOAP envelope --> <soap:Envelope> <soap:Body> <getOrder><id>42</id></getOrder> </soap:Body> </soap:Envelope> // REST equivalent GET /orders/42 Accept: application/json
🏆

When SOA Still Wins

  • Legacy integration — connecting COBOL mainframes to modern apps via protocol translation
  • Regulated industries — banking & healthcare needing auditable, formal message flow
  • Formal contracts — WSDL/WS-Policy provides machine-verifiable service agreements
  • Small/mid teams — microservices operational overhead can overwhelm teams under ~30 engineers
  • Coarse-grained decomposition — fewer, larger services are easier to govern than hundreds of tiny ones

Microservices Architecture

Small services, loosely coupled, independently deployable. Learn the patterns that make microservices work in production.

🚪

API Gateway Pattern

A single entry point for all clients — handling auth, rate limiting, SSL termination, request routing, and response aggregation. Clients never talk to services directly.

Mobile Web SPA API Gateway Auth Svc Orders Svc User Svc
KongAWS API GWNGINX
🐳

Docker + Kubernetes

Microservices and containers are a natural pair. Docker packages each service with its dependencies. Kubernetes orchestrates them at scale — auto-healing, rolling deploys, and horizontal scaling.

FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production CMD ["node", "server.js"] # scale horizontally kubectl scale deployment orders --replicas=10

ImmutableAuto-healingRolling deploys
🔍

Service Discovery

In dynamic cloud environments, services spin up and down — IPs change. Service Discovery lets services find each other automatically via a registry.

# Client-side (Eureka/Consul) 1. Service registers: POST /v1/agent/service/register 2. Client queries: GET /v1/catalog/service/orders 3. Client load-balances across instances # Server-side (K8s ClusterIP) orders.default.svc.cluster.local:8080

ConsulEurekaK8s DNS

Circuit Breaker

Prevents cascading failures. When a service fails too often, the circuit opens — calls fail fast, giving the downstream service time to recover.

🟢

CLOSED

Normal — requests pass through.

🔴

OPEN

Threshold exceeded — fail fast.

🟡

HALF-OPEN

Trial probe — success or re-open.


Resilience4jHystrixPolly
📋

The 12-Factor App

Heroku's methodology for building cloud-native, microservices-ready applications

I
Codebase
One repo, many deploys
II
Dependencies
Explicitly declared & isolated
III
Config
Stored in environment vars
IV
Backing Services
Treat as attached resources
V
Build/Release/Run
Strictly separated stages
VI
Processes
Execute as stateless procs
VII
Port Binding
Export via port binding
VIII
Concurrency
Scale via process model
IX
Disposability
Fast startup & graceful shutdown
X
Dev/Prod Parity
Keep environments similar
XI
Logs
Treat as event streams
XII
Admin Processes
Run as one-off processes

SOA vs Microservices

Not enemies — SOA is the parent, microservices the evolution. Here's exactly where they differ.

Dimension 🔌 SOA ⚡ Microservices
Service SizeCoarse-grained — a "service" may contain many business functions (e.g. entire order management)Fine-grained — each service does one thing (e.g. just placing an order)
CommunicationESB middleware, SOAP/XML, heavy WS-* protocols, synchronous orchestrationDirect HTTP/REST, gRPC, or async message queues (Kafka, RabbitMQ) — no central bus
Data OwnershipShared database is common — multiple services may share a schema or DB instanceDatabase per service — each service owns its data store; no shared schemas
CouplingLoose at the service level, but tightly coupled through the ESB and shared dataLoosely coupled end-to-end; services only know about each other's APIs
DeploymentServices often deployed together or on shared app servers; coordinated releasesEach service deployed independently on its own schedule — continuous delivery
Team SizeWorks well with centralized teams; governance by an architecture board"Two-pizza team" rule (Amazon) — small autonomous teams own their service end-to-end
ScalabilityScale entire service groups; less granular controlScale individual services independently — only scale what needs it
TechnologyUsually standardized on one stack per enterprise (Java EE, .NET)Polyglot — each team picks the right language/DB for their service
GovernanceCentralized — enterprise architecture team enforces standardsDecentralized — teams govern themselves within loose conventions
Failure IsolationESB failure can cascade; limited bulkhead patternsCircuit breakers, bulkheads, and retry policies are first-class concerns
TestingIntegration testing through the ESB; contract testing less commonConsumer-driven contract tests (Pact), chaos engineering, distributed tracing
Best ForEnterprise integration, legacy modernization, regulated industriesHigh-velocity product teams, cloud-native apps, massive scale

E-Commerce Architecture Visualizer

See how the same e-commerce app looks across all three architectural styles. Click each tab to switch.

Architecture

All features — browsing, cart, checkout, payments, notifications — live in a single deployable JAR/WAR. One database, one codebase.

Deploy Strategy

Release the entire app at once. A bug in the notification module means re-deploying everything. Teams serialize on one codebase.

Browser / App MONOLITH (one deployable unit) Product Catalog Module Cart & Checkout Module User & Auth Module Payment Module Order Module Notification Module 🗄 Single Database
✓ Simple to develop initially ✓ Easy to test end-to-end ✗ Scales as a unit only ✗ Long build & deploy cycles ✗ Tech stack lock-in

Architecture

Services communicate through a central ESB. The ESB handles routing, transformation, and orchestration. Services are bigger than microservices but smaller than a monolith.

Deploy Strategy

Services can be deployed somewhat independently, but the shared ESB and often shared DB schemas mean coordination is still needed for major changes.

Web Client ESB route · transform orchestrate Product Service SOAP/WSDL Order Service SOAP/WSDL Payment Service SOAP/WSDL User Service SOAP/WSDL 🗄 Shared DB (common schema)
✓ Service reuse ✓ Protocol mediation ✗ ESB = single point of failure ✗ Shared DB coupling

Architecture

Each function is its own service with its own database. An API Gateway handles external traffic. Services communicate async via Kafka events or sync via REST/gRPC.

Deploy Strategy

Any team can ship their service independently — multiple times a day. K8s rolls updates with zero downtime. Each service has its own CI/CD pipeline.

Web / App API Gateway auth · routing Auth Svc :3001 · JWT Product Svc :3002 · REST Cart Svc :3003 · REST Order Svc :3004 · events Payment Svc :3005 · gRPC 🗄 Auth DB 🗄 Mongo 🗄 Redis 🗄 Postgres 🗄 Postgres Kafka event bus async msgs
✓ Independent deploys ✓ DB per service ✓ Polyglot stacks ✗ Distributed systems complexity ✗ Operational overhead

Essential Microservices Patterns

These patterns from Chris Richardson's microservices.io solve the hard distributed systems problems — data consistency, service resiliency, and observability.

Routing Client API GW auth · limit · route Svc A Svc B Svc C

API Gateway

Single entry point that routes, authenticates, and aggregates responses. Decouples clients from internal service topology.

Data Consistency Order Svc Payment Svc Inventory Notify compensate on failure

Saga Pattern

Manages distributed transactions across services. Each step publishes an event; failures trigger compensating transactions to undo prior steps.

Data Access Write Model Read Model Event Bus Write DB Read DB

CQRS

Command Query Responsibility Segregation — separate write and read models. Write side handles commands; read side is optimized for queries with denormalized views.

Data Storage Command Event Store OrderCreated PaymentMade ItemShipped Projection A Projection B

Event Sourcing

Store state as an immutable log of events rather than current values. Replay events to reconstruct state at any point in time. Natural audit trail.

Deployment Pod / Container Group App Container Sidecar proxy · logs · mTLS

Sidecar Pattern

Deploy a helper container alongside each service container. The sidecar handles cross-cutting concerns: logging, tracing, mTLS, config — without touching app code.

Infrastructure Svc + Envoy Svc + Envoy Control Plane (Istio) Svc + Envoy

Service Mesh

Infrastructure layer for service-to-service communication. Sidecars (Envoy proxies) handle retries, mTLS, tracing, and traffic shaping — all without app code changes.

Migration Legacy Monolith New Microservices Façade

Strangler Fig

Incrementally replace a monolith by routing new features to microservices while keeping legacy running. Named after the fig tree that slowly envelops its host. Coined by Martin Fowler.

Curated Resources

The best videos, interactive labs, articles, and books — carefully selected from top practitioners.

🎬
Microservices Full Course — TechWorld with Nana

In-depth tutorial covering all microservices fundamentals with real examples

YouTube · ~3.5 hours · Beginner–Intermediate
Free
🎬
SOA vs Microservices — IBM Technology

Clear visual explanation of the key differences by IBM architects

YouTube · ~10 min · Beginner
Free
🎬
Microservices in 100 Seconds — Fireship

Lightning-fast visual overview perfect for a quick mental model refresh

YouTube · 100 seconds · All levels
Free
🐳
Play with Docker — Docker Labs

Free browser-based Docker playground. Run containers and multi-service apps without installing anything.

In-browser lab · Free · No signup required
Interactive
⚔️
Killercoda Microservices Scenarios

Hands-on browser-based labs covering Docker, Kubernetes, service mesh, and microservices patterns step by step.

Browser labs · Free tier available
Interactive
☁️
AWS Microservices — Hands-On Labs

AWS's official microservices documentation with workshop labs using ECS, Lambda, and API Gateway.

AWS Docs + Labs · Free tier eligible
Interactive
✍️
Microservices — Martin Fowler & James Lewis

The canonical article that defined microservices for the industry. Still required reading in 2025.

martinfowler.com · Long read · ~45 min
Canonical
🗺️
Microservices Patterns — microservices.io (Chris Richardson)

The most comprehensive pattern catalog: 50+ patterns with diagrams, trade-offs, and code examples.

microservices.io · Reference site · Free
Reference
📘
Microservices Guide — Atlassian

Practical guide covering architecture, DevOps practices, and common pitfalls from Atlassian's engineering team.

atlassian.com · Medium reads · Free
Guide
📗
Building Microservices, 2nd Ed. — Sam Newman

The definitive book. Covers decomposition, communication, deployment, security, and observability. 600+ pages of battle-tested wisdom.

O'Reilly · ~$50 · 2021 · Advanced
Top Pick
📕
Microservices Patterns — Chris Richardson

Companion book to microservices.io. Deep dives into Saga, CQRS, Event Sourcing with Java examples.

Manning · ~$50 · 2018 · Intermediate
Top Pick
📙
Monolith to Microservices — Sam Newman

Practical migration patterns: Strangler Fig, Branch by Abstraction, parallel runs. How to make the journey safely.

O'Reilly · ~$50 · 2019 · All levels
Migration

Your Roadmap to Cloud-Native

Follow this progression from first principles to production-grade distributed systems engineering.

1

Monolith Mastery

Build a full-stack app. Learn MVC, ORM, REST APIs. Understand why monoliths work well at first.

2

REST & HTTP

Master HTTP verbs, status codes, JSON, OpenAPI spec. Build and consume RESTful APIs.

3

Docker Basics

Containerize apps, write Dockerfiles, use docker-compose to run multi-service stacks locally.

4

SOA Concepts

Study SOAP, WSDL, ESB patterns. Understand enterprise integration and service contracts.

5

Microservices Patterns

Implement API Gateway, Service Discovery, Circuit Breaker, Saga, and CQRS from scratch.

6

Kubernetes

Deploy services to K8s. Learn Deployments, Services, ConfigMaps, Ingress, and HPA scaling.

7

Service Mesh

Install Istio or Linkerd. Enable mTLS, distributed tracing, and traffic management policies.

8

Cloud-Native

GitOps with ArgoCD, observability stack (Prometheus + Grafana + Jaeger), chaos engineering.

Architecture Cheat Sheet

16 essential terms, patterns, and people you need to know in microservices and SOA.

SOA

Service-Oriented Architecture

Architectural style using coarse-grained services on shared infrastructure, connected by an ESB.

ESB

Enterprise Service Bus

SOA's central middleware: routes, transforms, and orchestrates messages between services.

SOAP

Simple Object Access Protocol

XML-based messaging protocol used in SOA. Verbose but formally typed via WSDL contracts.

WSDL

Web Services Description Language

XML schema that formally describes a SOAP service's operations, messages, and data types.

µSvc

Microservice

Small, independently deployable service responsible for a single bounded context. Owns its data.

API GW

API Gateway

Single entry point for all client requests. Handles auth, rate limiting, routing, and aggregation.

SAGA

Saga Pattern

Distributed transaction across services using events. Failures trigger compensating transactions.

CQRS

Command Query Responsibility Segregation

Separate read and write models. Commands mutate state; queries use optimized read projections.

ES

Event Sourcing

Store state as an immutable sequence of events. Replay to reconstruct any historical state.

CB

Circuit Breaker

Prevents cascading failures. Opens when error threshold exceeded; probes recovery with half-open.

SD

Service Discovery

Services register their location. Clients query the registry (Consul/Eureka/K8s DNS) to find them.

DDD

Domain-Driven Design

Design paradigm by Eric Evans. Bounded Contexts map naturally to microservice boundaries.

BFF

Backend for Frontend

A separate API Gateway tailored for each client type (mobile vs web) to avoid over-fetching.

FOWLER

Martin Fowler

Software architect at Thoughtworks. Co-authored the seminal microservices article with James Lewis (2014).

NEWMAN

Sam Newman

Author of "Building Microservices" and "Monolith to Microservices." Leading practitioner and speaker.

RICHARDSON

Chris Richardson

Author of "Microservices Patterns" and creator of microservices.io — the go-to pattern catalog.

Expert Resources & Pattern Library

Key insights drawn from the canonical authorities on microservices and SOA — Fowler, Richardson, and the Twelve-Factor methodology.

🐚
martinfowler.com · 2014

Martin Fowler & James Lewis

"The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms."

9 canonical characteristics · Services organized around business capabilities · Decentralized governance · Smart endpoints and dumb pipes

📐
microservices.io · Chris Richardson

Richardson's Pattern Catalog

The definitive catalog of 44+ microservices patterns covering decomposition, data management, communication, reliability, observability, deployment, and security — each with context, problem, and solution.

Decomposition · Data patterns · Communication · Reliability · UI patterns · Security patterns

⚙️
12factor.net · Adam Wiggins · 2011

The Twelve-Factor App

Drafted by Heroku engineers from observations running thousands of SaaS apps: a methodology for building cloud-native applications that maximize portability, deployability, and scalability.

12 factors · Codebase → Build → Release → Run · Stateless processes · Config in environment

Core Microservices Patterns

DECOMPOSITION

Decompose by Business Capability

Define services corresponding to stable business capabilities — cross-functional areas producing value. Aligns service boundaries with organizational structure per Conway's Law, enabling team autonomy and independent deployment.

COMMUNICATION

API Gateway

A single entry point for all clients, routing requests to appropriate services. Handles cross-cutting concerns: authentication, rate limiting, SSL termination, and response aggregation without burdening individual services.

RELIABILITY

Circuit Breaker

Prevents cascading failures by detecting unhealthy downstream services and short-circuiting calls for a cooldown period. Popularized by Netflix's Hystrix — opens the circuit when error thresholds are exceeded.

DATA MANAGEMENT

Saga

Manages distributed transactions across services via a sequence of local transactions. Each step publishes an event; on failure, compensating transactions undo prior steps. Uses choreography or orchestration approaches.

DATA MANAGEMENT

CQRS

Command Query Responsibility Segregation — separates the write model (commands) from the read model (queries), each with its own data store. Enables independent scaling and optimization of reads vs writes.

DATA MANAGEMENT

Event Sourcing

Persists business entity state as a sequence of state-changing events rather than current snapshot. Current state is reconstituted by replaying events. Enables full audit trails, temporal queries, and event-driven integration.

DEPLOYMENT

Service Mesh

A dedicated infrastructure layer handling service-to-service communication — observability, traffic management, and mutual TLS without modifying application code. Implementations: Istio, Linkerd, Consul Connect.

DEPLOYMENT

Sidecar

Deploys a helper process alongside the primary service container sharing its lifecycle. Handles cross-cutting concerns — logging, monitoring, service discovery, security — independently of core business logic.

RELIABILITY

Bulkhead

Named after ship hull compartments: isolates service resource pools so overload on one downstream dependency cannot exhaust resources for others. Prevents cascading resource exhaustion across the system.

MIGRATION

Strangler Fig

Incrementally migrates a legacy monolith by routing new functionality to new microservices while legacy requests stay in the monolith. Named by Martin Fowler (2004) after tropical fig trees that gradually surround and replace a host tree.

The Twelve Factors — Quick Reference

I. Codebase — one repo, many deploys
II. Dependencies — explicitly declared & isolated
III. Config — stored in environment variables
IV. Backing Services — treat as attached resources
V. Build, Release, Run — strictly separate stages
VI. Processes — stateless, share-nothing
VII. Port Binding — export services via port
VIII. Concurrency — scale out via process model
IX. Disposability — fast startup, graceful shutdown
X. Dev/Prod Parity — keep environments similar
XI. Logs — treat as event streams
XII. Admin Processes — run as one-off processes

Key Terms in Their Own Words

Precise definitions drawn directly from primary sources — Fowler, Richardson, Evans, OASIS, and cloud-native practitioners.

SOA Principle

Service Contract

Services adhere to a communications agreement defined by one or more service description documents. The contract expresses purpose, capabilities, constraints, and requirements — decoupled from the implementation behind it.

— Thomas Erl, SOA Principles of Service Design (2007)

SOA Principle

Loose Coupling

Service relationships are minimized to only what is necessary. Consumers depend only on what the contract exposes — not implementation details. Enables services and consumers to evolve independently with minimal impact on each other.

— OASIS SOA Reference Architecture Foundation

SOA Principle

Service Abstraction

Beyond what is described in the service contract, services hide logic from the outside world. Abstraction preserves loose coupling by preventing consumers from forming dependencies on internal implementation details that may change.

— Thomas Erl, SOA Principles of Service Design (2007)

SOA Principle

Service Reusability

Logic is divided into services with the intention of promoting reuse. A service is designed to solve a generic business problem agnostic to any particular consumer, enabling it to serve multiple applications over time.

— Thomas Erl, SOA Principles of Service Design (2007)

SOA Principle

Service Composability

Collections of services are coordinated and assembled to form composite services or complete solutions. Services can become building blocks regardless of the size and complexity of the composition they participate in.

— Thomas Erl, SOA Principles of Service Design (2007)

Domain-Driven Design

Bounded Context

A central pattern in DDD: an explicit boundary within which a particular domain model applies. A ubiquitous language is valid only inside its context. Microservices map cleanly to bounded contexts — each service owns its model and data.

— Eric Evans, Domain-Driven Design (2003)

Domain-Driven Design

Domain-Driven Design

An approach to software development centering design on the core domain and its logic, basing complex designs on a model, and fostering collaboration between technical and domain experts to iteratively refine conceptual understanding.

— Eric Evans, Domain-Driven Design (2003)

Distributed Systems

Eventual Consistency

A consistency model where, given no new updates, all replicas of a data item will eventually return the last updated value. Microservices embrace eventual consistency because each service owns its own data store — ACID across services is generally avoided.

— Werner Vogels, CTO Amazon, "Eventually Consistent" (2008)

Distributed Systems

Idempotency

An operation is idempotent if applying it multiple times produces the same result as applying it once. Critical in microservices for safe message retries — duplicate messages from retries must not cause duplicate effects.

— Chris Richardson, Microservices Patterns (2018)

Infrastructure Pattern

Service Mesh

A dedicated infrastructure layer for handling service-to-service communication. Implemented as lightweight network proxies deployed alongside application code, making communication manageable, observable, and reliable without app changes.

— Buoyant Inc. (creators of Linkerd), coined 2017

Deployment Pattern

Sidecar Pattern

A helper process deployed alongside the primary application container, sharing its lifecycle. Handles cross-cutting concerns — log shipping, service discovery, security, health checks — independently, keeping core service logic clean.

— Microsoft Azure Architecture Center; CNCF ecosystem

Migration Pattern

Strangler Fig

Incrementally replace a monolith by routing new feature requests to microservices while legacy requests stay in the monolith. Named after tropical strangler fig trees that germinate in the canopy, grow roots to the ground, and slowly replace the original host.

— Martin Fowler, bliki/StranglerFigApplication (2004)

Organizational Design

Conway's Law

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." Microservices teams use the Inverse Conway Maneuver — structure the org to match the target architecture.

— Mel Conway, Datamation magazine (April 1968)

Communication Pattern

API Gateway

A server acting as a single entry point into the system. Responsible for request routing, composition, and protocol translation. May also perform authentication, rate limiting, caching, and response transformation before returning to the client.

— Chris Richardson, microservices.io/patterns/apigateway.html

Discovery Pattern

Service Registry

A database of available service instances. Services register on startup and deregister on shutdown. Clients query the registry directly (client-side discovery) or via a router (server-side discovery) to locate a live, healthy instance to call.

— Chris Richardson, microservices.io/patterns/service-registry.html

Observability Pattern

Health Endpoint

Each service exposes a dedicated endpoint (e.g. /health) returning its operational status. Load balancers and orchestrators (Kubernetes liveness/readiness probes) poll this to route traffic only to healthy instances.

— Chris Richardson, microservices.io (Health Check API pattern)

Resilience Pattern

Bulkhead

Partitions service resources (thread pools, connection pools) so excessive load on one downstream dependency cannot exhaust resources serving other dependencies. Named after watertight ship hull compartments — if one floods, the ship still sails.

— Michael Nygard, Release It! (2007); popularized by Netflix Engineering

Resilience Pattern

Backpressure

A flow-control mechanism where downstream services signal capacity constraints upstream, causing producers to slow their emission rate rather than allowing buffers to overflow. Essential in reactive and event-driven microservices to prevent unbounded resource growth.

— Reactive Manifesto (2014); Reactive Streams Specification

Knowledge Check

8 questions drawn directly from primary source material — Fowler, Richardson, Evans, Conway, and the Twelve-Factor team.

0
Correct
0
Incorrect
8
Remaining
Q1

According to Fowler and Lewis (2014), the microservice architectural style develops a single application as what?

Q2

The Strangler Fig pattern was named after what natural phenomenon, and coined by whom?

Q3

In Richardson's pattern catalog, which pattern specifically addresses managing distributed transactions across multiple microservices?

Q4

The Twelve-Factor App methodology was developed by engineers at which company, and roughly when?

Q5

Conway's Law states that organizations design systems that mirror what?

Q6

The Bulkhead resilience pattern takes its name from which engineering domain?

Q7

In CQRS (Command Query Responsibility Segregation), what is the fundamental separation?

Q8

The Twelve-Factor App's "Config" principle (Factor III) specifies that application configuration should be stored where?