What do matrix clocks solve but vector clocks can't?
I understand the need for vector clocks in terms of scalar logical clocks failing to provide enough information to tell whether there is an update conflict in a key value store update for example. But I am not sure what problem is still unsolved by vector clocks and then solved by the more bulky matrix clocks? In an eventual consistency environment all messages ever created by a system need to be kept until every peer has received the message (== eventual consistency). But you don't want to keep messages for ever, so you need to have a way to tell which messages were received by all nodes and