RiskChapter II · Distribution · Building block 1 of 6

Assumptions about distribution

Distributed systems communicate over networks with delay, failure and limited resources. Architecture must take these characteristics into account as normal operating conditions.

  1. ErrorSilent adoption over the net.
  2. ConsequenceWhat that means for the call.
  3. Design responseConcrete decision in the flow.

Context

Why this is important

Anyone who treats calls across service boundaries like local method calls quietly relies on assumptions that do not apply on the network. The eight errors according to L Peter Deutsch make these assumptions testable. Timeout, Retry and Breaker deepen their own building blocks.

This building block translates network assumptions into design questions. Timeout, Retry and Observability deepen specific protection and diagnostic mechanisms.

At a glance · Silent assumptions about the network

A silent assumption meets a real network, and the consequence calls for a deliberate design response.
Shop example · Mapping

The Eight Mistakes in Payment Process

The shop application requests an external payment provider. The team looks at what delay, separation and variable response times mean for the flow.

This is how you read the picture

  1. Error The first column, such as “The network is reliable”.
  2. Consequence The column “Follow for the call” and the case in the shop next to it.
  3. Design response The last column, such as “Keep identifier, query status” if the answer is missing.
The Eight Mistakes in Payment Process
ErrorFollow for the callCase in the shopDesign response
The network is reliableResponse may be omittedPayment P-731 Remains without answerKeep identifier, status query
Latency is zeroResponse time varies and can be longTime budget 1.000 ms; answer only came up 1.500 msSet time budget, show clarification
Bandwidth is infiniteGreat answers are stuckA call provides more order data than the page needsRetrieve only required fields
The network is secureStrangers can read or intervenePayment data runs to the external providerEncryption, checking callers
The topology does not changeChanging addresses and instancesThe provider moves to another addressResolve names, do not write addresses
There is one administrator.Responsibility lies with several partiesShop team and payment providers change independentlyVersion contracts and agreements
Transportation costs are zeroEach call costs time and resourcesMany small payment requests per order add upbundle calls, measure overall path
The network is homogeneousOpposites behave differentlyThe provider uses different formats and error codes than the shopChecking contracts, translating errors
Read each line from left to right: error, follow for the call, case in the shop, draft reaction.

Benefits & limitations

Helps if:

  • Network communication adds variable latency and partial failures to local functional dependencies.
  • Chains of remote calls can propagate delays and failures along the entire path.
  • Data and identity transitions across process boundaries require serialisation, access protection and version rules in the contract.

Boundaries

  • The eight fallacies prompt reflection; they are not an exhaustive checklist. Examine each call across a service boundary individually.
  • Protective mechanisms consume time and operational effort themselves. Timeout and retry settings need coordination to avoid making the situation worse.
  • Measurements reveal whether a fallacy affects production behaviour; Observability exposes latency and aborted calls.

In practice

  1. Count network round trips across the entire process and combine data that belongs together in business terms into coarser-grained operations. Measure total latency as well as individual calls.
  2. Define failure semantics, identity and a time budget for each remote boundary. An aborted call needs a distinct outcome for the caller.
  3. Vary delay, loss and destination changes in tests. Timeout limits waiting time; Backpressure protects against backlogs.
Read the detailed explanation

Network calls have variable latency, can fail and transfer versioned data across a security boundary. Their failure and cost characteristics differ from calls within the same process.

Many small round trips multiply waiting times and potential failure points. Coarser-grained business operations, clear error semantics and measurable time budgets help account for these properties in the architecture.

Timeout limits waiting time; Backpressure limits offered load. Together, they turn network assumptions into concrete time and capacity budgets.

The eight fallacies originated with L Peter Deutsch and colleagues at Sun Microsystems.

Check your understanding

Test yourself in three stages

  1. ReadingCheck in the picture

    Which design reaction belongs to the error “The network is reliable”?

    View the solution with justification

    Keep the identifier and query the status, because the answer to the payment P-731 may be omitted.

  2. ApplyingTransferred to a new situation

    The payment provider moves to a new address, and the shop no longer reaches it. What is the error behind it, and what helps?

    View the solution with justification

    “The topology does not change.” The shop dissolves the provider via a name, instead of specifying the address.

  3. EvaluateWeighing an alternative

    The team sets the time budget for payment calls very generously so that latency fluctuations never stand out. What speaks in favour, what speaks against?

    View the solution with justification

    Fewer calls cancel prematurely. On the other hand: the caller waits a long time, and the shop can only display the pending clarification late. A fixed time budget with clarification remains more controllable.

Continue on the learning path

Next in Distributed systems: Partial failures.