Causal order is a strengthening of FIFO ordering which ensures that a message is not delivered until all messages it depends on have been delivered.
This causal dependence relation is more formally specified as follows:- an execution of a multicast or receive primitive by a process is called an event.
Event e causally precedes event f (i.e. Happened before), (ef), if an only if:
1. A process executes both e and f in that order, or
2. E is the multicast of message m and f is the receipt of m, or
3. There is an event h, such that eh and hf.
A causal protocol then guarantees that if the broadcast of message m causally precedes the broadcast of m', then no correct process receives m' unless it has previously received m.