Practice this topic in a realistic system design interview
Lamport timestamps preserve causal order in one direction: if A -> B, then L(A) < L(B). The reverse does not hold. A smaller Lamport timestamp could mean A caused B, or it could mean A and B were concurrent. Vector clocks add enough information to tell those cases apart.
Instead of one counter per process, a vector clock keeps one counter per participant. That extra metadata lets the system compare causal histories directly and decide whether one event happened before the other, or whether the two events were concurrent.
This chapter covers the update rules, vector comparison for concurrency detection, version vectors, and practical limits around size, membership, and conflicts.