Skip to main content

Evidence limits and distributed guarantees

What this concept is​

A clock claim is conditional on the events and dependencies represented. Missing messages, restarted identities or unmodelled shared state change what conclusions a trace can support. Logical time is not elapsed time or an authority to act.

Why it matters here​

A correct timestamp calculation cannot make a failure detector accurate, choose a legitimate leader, or make retries safe. Those mechanisms require separate safety and liveness arguments and the original module labs.

Concrete example​

A performs two local events with Lamport values 1 and 2. B independently performs one with value 1. B’s event has a smaller scalar than A’s second event but remains concurrent with it. Sorting by scalar and process ID produces a deterministic total order; it does not add a real causal edge.

Common confusion / misconception​

A small timestamp is not proof of an old wall-clock time. A timeout is not proof that a node died. Likewise, reusing a process ID after resetting its vector can invalidate comparisons with retained events; dynamic membership and restart epochs are outside this lab.

How to use it​

Attach the model assumptions to every evidence packet: fixed identities, complete local order, captured messages and immutable snapshots. For an operational trace, list unobserved edges and separate “no path in this trace” from a proven absence of dependencies. Link failure-detector observations to suspicion, Raft decisions to its term/log rules, and API retries to durable idempotency rather than timestamp ordering alone.

Check yourself​

Can two vector-concurrent writes be resolved automatically without a business conflict policy? Can timestamp order show whether an earlier request’s effect committed?

Mini drill or application​

Remove one receive edge from a complete trace and compare classifications. Then explain how a restarted process would need a new identity/epoch or another protocol before old vectors could be trusted.

Read this only if stuck​

Use Distributed Systems: Concepts and Design on fault models, and the Cambridge course materials for logical-time and failure-model review. Pick the section answering your specific gap.