A vector clock is a data structure, typically a list of counters, where each node in a distributed system maintains its own logical timestamp. When an event occurs at a node, it increments its own counter. These timestamps are attached to messages; upon receipt, a node updates its vector by taking the element-wise maximum with the received vector. This process causally orders events, allowing the system to determine if one event happened-before another or if they are concurrent.
