Software architecture Made visibleBy Abel · Free to explore

A diagram is only
the beginning.

The boxes look reasonable. Then a dependency slows down, requests start waiting, and the interesting questions begin.

Let’s try it

01A checkout with a weak link.

Start with the payment provider. The rest follows.

SYSTEM OPERATIONALCHECKOUT / 6 NODES
CHECKOUT SYSTEMBOUNDARY / 01HTTPSREQUESTSYNCSYNCREAD / WRITEClientREQUEST ORIGINAPI GatewayENTRY POINTOrder ServiceSERVICE APayment APIEXTERNAL DEPENDENCYInventoryINTERNAL SERVICEDatabasePERSISTENT STATEFOCUSED VIEW / CHECKOUT PATHvia API gatewaypayment requestClient24 requests / secondOrder ServiceWorkers availablePayment APIHealthy dependencyINVENTORY + DATABASE REMAIN HEALTHY
Request flow HealthySelect a node to inspect
RESPONSE TIME
128ms
ERROR RATE
0.0%
IN-FLIGHT REQUESTS
0
RESPONSES / SECOND
24req/s
Can one slow provider use up your order service’s capacity?

Introduce the failure and watch the next few seconds.

Enter the experiment
What to notice

The checkout path has capacity to spare.

Start with a healthy provider and 24 incoming requests per second. The readouts show the baseline.

SYSTEM OPERATIONAL. Circuit not installed. Payment dependency is healthy.

Only the payment dependency is under test. Inventory and storage stay healthy, so you can see where the failure stops.

Build your own scenario
New field notes / Integrations

Three providers. How long does your caller wait?

Compare synchronous calls and queued work. Try timeouts, retries, and a provider that stops answering.

02 / The pattern index

Start with something
that could go wrong.

A pattern makes more sense when you have a reason to use it. These five experiments begin with a problem you might actually meet, and each one decides something at a different level — how failure is contained, how work moves, how a system is changed while it runs.

Browse the collection

03The same system, a different question.

There is no best architecture, only ones that fit a given set of goals and constraints better than the alternatives. Change the constraints and the answer is allowed to change.

Scenario Studio / Build your own

Model a system you actually work on.

Draw the components and connections, give them processing times and capacity, then put the whole thing under load. Create an alternative design and compare both under the same traffic and the same failure.