Interesting. We have been using a similar approach for true blockchain protocols (as opposed to blockchain state machines).
In our approach the server’s data structure is an MDAG (https://github.com/jbenet/random-ideas/issues/20) with interlinked objects and object versions.
In our prototype we use a classic REST API to call up the data between these independent MDAGs and interlink them by UUID referencing. That way the MDAGs are certain to be consistent even between machines.
We go one step further by adding a simple JSON-like schema referencing a functional object (VM executable code) to the REST called objects. That way every server can always know how to interpret the received objects. Even if the original server changes things, the original versions of the objects are still callable and referable though UUID, as well as able to be interpreted by UUID of the functional code.
BTW, we assume that there is no way to keep time in this multi-server system. Currently each server provides a list of other servers which are ordering its data stream. We are currently working on implementing a Universal Hash Time POC (https://www.youtube.com/watch?v=phXohYF0xGo) so that all participating servers can find out the absolute order of object events across all servers without assuming time keeping capability.