title: What are the use cases for a Vector Clock versus a Version Vector?
body: <p>I have been having trouble finding an example of what use cases are suitable for <a href="https://en.wikipedia.org/wiki/Vector_clock" rel="noreferrer">Vector Clocks</a> and <a href="https://en.wikipedia.org/wiki/Version_vector" rel="noreferrer">Version Vectors</a>, and how they might differ. I understand that they largely work in the same way, with Vector Clocks using <code>receive</code> and <code>send</code> functions, and Version Vectors using a <code>sync</code> function instead, but I do not understand the differences between the two options. Is it just two different ways of expressing the same thing, or are there real differences in use cases between them?</p>
  
  <p>I was only able to find one question that was somewhat related: <a href="https://stackoverflow.com/questions/43554164/when-do-i-use-a-consensus-algorithm-like-paxos-vs-using-a-something-like-a-vecto/44617625#44617625">"When do I use a consensus algorithm like Paxos vs using a something like a Vector Clock?"</a></p>
  
  <p>Even though the linked answer states the following, and references a short article, the differences are still unclear to me.</p>
  
  <blockquote>
    <p>You might want to use a version vector for a leaderless distributed
    storage. You might use vector clocks for the same (although it's a
    worse fit; the article also suggests you use it for consistent
    snapshots, for implementing causal ordering in general distributed
    systems etc).</p>
  </blockquote>