← The Stage ManagerCase 05 of 05

Topology is a drawing

Where the characters live, and why the script does not care.

The situation

Every system eventually has to answer where each component actually runs, and that question normally leaks into the code: a queue name appears in a class, a hostname shows up in a config the domain reads, a retry policy gets written next to a business rule. Once that has happened, moving a component is no longer a deployment decision — it is a code change with a test cycle attached. This case deploys the same characters two completely different ways.

What travels

What actually crosses between machines.

First floor plan

A packer beside every cashier. The message never leaves the machine: no hop, no certificates, nothing that can time out.

Second floor plan

One shared packer on a machine of his own. The same envelopes now ride the wire through a broker.

The script

Identical to the letter. It names roles and nothing else — no machine, no wire, no broker, no topic. Moving a character is cutting the box out of one drawing and updating one entry in the binding table.

Identity is the verbs and the history. Never the hardware.

The objection

In the second drawing the message crosses a network. Surely something has to change — timeouts, retries, serialization, error handling. A local call and a remote call cannot be the same code.

Something does change, but not in the program. Delivery concerns belong to the transport: whether to retry, how long to wait, what to do with a message that cannot be delivered. The character's part is unchanged because his part was never delivery — his part was speaking. He records that he spoke to a role; what carried it is the deployment's business.

Words used precisely
Same verbs does not mean the same character
In most systems two components running the same code are interchangeable replicas. Here they are not: three packers with three journals are three individuals with three histories. What makes bodies into one character is a shared journal, not shared code.
The rule, stated both ways
Same verbs plus the same journal is the same character. Same verbs plus different journals are different characters.
What is absent
  • No hostname, no machine name, anywhere in the domain language.
  • No queue name, no topic, no broker named in the script.
  • No retry policy sitting next to a business rule.
  • No code change between the two floor plans.

That absence is the result, not the setup.

Grounded in

Where this comes from.

Topologies guide §2