The Stage ManagerCase 03 of 05

The herald

Three isolated characters and one shared messenger.

Watch this case

The situation

Three machines, each with one character doing one job — a cashier who sells, a packer who packs, a courier who ships. They are deliberately isolated: own verbs, own journals, no cable between them. And yet when the cashier sells, the packer must pack and the courier must ship. The usual answer is a message bus, which works but moves the flow of the business into the bus's configuration, where no participant's own program says anything about it.

The sequence

Walk it one step at a time.

Three machines side by side, each with its own character — a cashier, a packer, a courier. Standing beside each of them is the same messenger: solid as the Director on the first machine, a paler Cast on the other two, the three joined by a dashed line. Each of his journals has been opened and holds one line so far, the same line.
  1. 01Three different characters open · no cable between them
  2. 02The herald is declared — one word, and he is on all three: Director on A, a Cast on B and C
  3. 03Their verbs divide: the others order, the herald asserts
  4. 04① The cashier sells, and journals it
  5. 05② A reaction speaks — the tell lands in his journal: values, a role, an identity
  6. 06③ The herald journals the fact · it replicates to all three
  7. 07④ One directed tell leaves for each receiver
  8. 08⑤ The packer packs · the courier ships · the two acks come back
What travels

What actually crosses between machines.

On the wire

Ordered values and an identity for the telling — nothing else. Names and types never cross; the receiver reads the values by position and relabels them in his own vocabulary.

What is addressed

A role, never a machine and never a transport. The route is not in the language at all — a binding table resolves it at runtime.

Who may emit

Only the Director. A tell issued by every replica would deliver the same message once per body, so a replicated messenger emits from one.

The act of speaking became a sentence in the speaker's own program.

The objection

If the cashier never calls the packer, isn't the herald just a message bus with extra steps? What did we actually gain?

Where the record lives. With a bus, the cashier's program records the sale and nothing else — the fact that anyone was told lives in the bus's log, outside every participant's program. Here the sentence recording that he told the herald is an entry in the cashier's own journal, and the acknowledgments naming who answered are entries in the herald's.

Words used precisely

A command is not a reaction
A command is an imperative verb a character performs, and it journals. A reaction watches a journal and speaks. The packer running pack is his own command, run because a message arrived — not a reaction.
The herald orders nobody
His verbs are assertive: facts, in the past tense. What each receiver does about a fact is the receiver's decision, in the receiver's own verbs. The sender never names them — he would not know them.
You do not operate any of this
You declare the character and write ordinary commands; which of the replicas writes is the engine's election, not a line in your code. The machinery is shown here for the same reason a database's transaction log is documented: not because you drive it, but because a claim about coordination you cannot inspect is one you have to take on faith.

What is absent

  • The cashier never learned the packer's verbs.
  • No direct link between cashier, packer and courier.
  • No orchestrator deciding the sequence. No component owns the flow.
  • No broadcast. Each receiver was named, one at a time.

That absence is the result, not the setup.