The Paradox: No Label Is Ambiguous, Every Label Is Noise
Teams that discover ambiguous arrows often overcorrect: every edge grows a paragraph of technical description, and the diagram collapses under its own documentation. The reader can no longer see the structure because the labels have buried it.
The goal is not to explain everything on the canvas — it is to commit each connector to exactly one semantic family. A good label answers the central question "What does this connection actually mean?" in two to four words, and delegates every remaining detail to a legend or an appendix.
Core Labeling Rule: Declare Intent, Not Implementation
A label like triggers or approves resolves ambiguity at a glance. A label like Async POST /v1/orders via Kafka topic orders.v2 with retry 3x belongs in the interface specification, not on the arrow.
An effective connector label is a predicate, not a paragraph: it names what kind of relationship exists — flow, dependency, trigger, approval, ownership, or sequence — and lets the visual style of the edge carry the secondary details.