If a send event $s_1$ caused a send event $s_2, then causal order requires $r_1 < r_2$ ($r_1, r_2$ on same process)
How do we know if $s_1$ causes $s_2$?
Causal order: If $s_1 < s_2$, and $r_1, r_2$ on the same process, then $r_1 < r_2$.
But both require attaching all messages the process has ever sent out and received. Problem: TOO EXPENSIVE!
Matrix $T$ is piggybacked on every message from $i$ to $j$.
Let Matrix $M$ be pairwise_max$(M,T)$.
DELIVER message if (LOOKING AT MY COLUMN…)
\[\begin{cases} T[k,j] \leq M[k,j] \quad \text{for all } k \neq i \quad \text{(My history includes the history of the sender)} \\ T[i,j] = M[i,j] + 1 \quad \text{(This means that this message is definitely the next consecutive one from $i$)} \end{cases}\]