It seems to me that both versioning (_version; See here) and [_seq_no, _primary_term] (See here) are used for optimistic concurrency control (e.g., to determine the version of a document we want to update). What's the difference between them and when should we use each?