Vector clocks are used to track causal relationships in distributed systems. Each node maintains a vector clock, which is updated with each event. When nodes communicate, they exchange vector clocks to ensure that causal relationships are preserved, thus maintaining casual consistency.