The direct answer

Use admitted local order and matched message send/receive evidence to establish a path within the declared event model. Scalar logical clocks preserve that direction of ordering; smaller numbers and tie-broken display order do not prove its converse. Missing capture must remain unknown rather than becoming a concurrency claim.

A sorted timeline can suggest a dependency it has not established

An operator investigating an AI draft sees service A’s note above service B’s completion record. Both carry increasing-looking numbers. The display makes it tempting to say the note caused the completion. But a chosen ordering of records and an evidenced communication dependency are different things.

This original worksheet selects a bounded model with two sequential process streams and explicitly matched messages. It excludes physical clock synchronization, deadlines, leases, consensus, mutual exclusion and vector-clock implementation. The ordinary task is protected diagnostic review, not authorization to dispatch another operation.

Use the historical clock condition in its supported direction

The July 1978 CACM paper defines its event relation from local order, same-message send/receive and transitivity. Concurrency means neither direction holds. Its clock condition maps that relation to increasing logical values; the converse does not hold. An arbitrary process tie-break extends it to a nonunique total order.

These are historical mathematical distinctions, not evidence about an installed tracing system. The selected logical labels are not UTC or elapsed duration. This worksheet implements no clock algorithm or distributed coordination service.

Stipulate a complete five-event paper model

Invent process A’s local sequence A1, A2, A3 and process B’s sequence B1, B2. A1 prepares a local draft reference. A2 sends message M-A. B1 receives that exact M-A, and B2 records a subsequent local step. A3 is another local note after A2. The complete teaching model contains no other messages, return messages or events.

This completeness is a stipulation for the example, never an observation about a real deployment. The labels denote paper events only. No process, message, event object, clock register or trace was constructed or executed.

Original model and one consistent scalar labeling — PROPOSED_UNRUN
ProcessPaper eventStipulated scalar labelKnown relation in this model
AA1: preparation1Before A2 and A3 locally
AA2: send M-A2Before B1’s receipt of the same message
AA3: other local note3After A2; unrelated to B1 and B2 here
BB1: receive M-A3Before B2 locally
BB2: subsequent local step4After the A1/A2/B1 chain

The supported model path is A1 → A2 → B1 → B2. The labels respect that path and each local sequence. Yet A3 has label 3 and B2 label 4 without a path from A3 to B2. Sorting those two numbers does not add the missing relation.

A display may also place A3 before B1 by choosing A before B as its tie-break. That makes the display deterministic; it does not turn their equal labels into a communication dependency. These integers are one invented consistent assignment, not output from a clock implementation.

Keep three evidence columns instead of one timestamp

Original investigation receipt — PROPOSED_UNRUN
ColumnEvidence neededClaim boundary
Model relationAdmitted local order and exact matched send/receive associationsSupported ordering path within the declared model
Logical labelingKnown clock meaning and supported relationship to that modelConsistent scalar labels, not a converse cause test
Presentation orderExplicit tie-break and collection/display policyOne readable ordering, not newly discovered dependencies

Keep collection arrival time in a separate field. An earlier event’s log record may reach the collector later. Likewise, a signed audit position or a queue acknowledgement has its own scope; neither automatically supplies a cross-process causal edge.

The positive is an operator admitting only the supported A1/A2/B1/B2 path for the selected model and leaving the additional display order visibly separate. It establishes possible influence under the model, not that the draft caused a business result or that every recorded statement is truthful.

Actual event definitions, process identity, local ordering, exact message provenance, complete capture, model coverage, logical-clock semantics and current access rights are unknown and unimplemented here. They block a real positive. A matching message caption or correlation string alone cannot fill those gaps.

Review eight independent inference cards

All eight cases are invented and PROPOSED_UNRUN
ConditionProposed disposition
Complete admitted model supports A1 → A2 → B1 → B2Admit only that model path for protected review
A3 label 3 sorts before B2 label 4, without a model pathNo converse clock-to-cause inference
A3 and B1 both have label 3; process tie-break orders themLabel the result presentation order, not a causal edge
B’s record arrives at the collector before A’s earlier recordPreserve arrival evidence separately
Matched message identity or provenance is missingDo not assert the cross-process edge
Capture or event population is incompleteDo not infer concurrency from an absent visible path
A scalar label is interpreted as UTC or elapsed timeReject the changed meaning
A model relation is supported but truth or action rights are notNo execution authority or root-cause certificate

Do not turn missing instrumentation into independence

The paper model’s no-other-message assumption makes its unrelated-event conclusion possible. A real trace with missing messages, hidden processes or unclear receive boundaries does not inherit that assumption. Preserve unknown coverage rather than inventing independence from what a dashboard omitted.

Before relying on a future implementation, define what each event boundary means and inspect the supported capture and association path. Keep sensitive payloads out of routine diagnostic receipts. The existing audit evidence contract still separates decisions, adapter outcomes and content minimization.

Boundary is prelaunch and does not ship this causal-trace analyzer. No clocks, messages, processes, graph algorithm, network, API/model or runtime fixture was run; its synthetic policy checks establish different behavior.

Primary sources

Official references supporting the guidance. Examples in this guide are synthetic and are not reports of a production incident.

  1. Time, Clocks, and the Ordering of Events in a Distributed System (CACM, July 1978)