Vector clock - метка события с счетчиками по узлам; позволяет сравнивать порядок событий (произошло ли A до B). Используют для обнаружения конфликтов и причинно-следственного порядка. В Go хранят как map[node]int или срез; при обновлении увеличивают свой счетчик и мержат с полученными. Применение: распределенные хранилища, конфликт-резолюция.
type VectorClock map[string]int64
func (v VectorClock) Merge(other VectorClock) {
for node, t := range other {
if t > v[node] { v[node] = t }
}
}