So in the federated model which is under way the way this works is no
reordering but conflict detection (eg it tells you that things may
have happened you didn’t know about) and client level ordering when in
What do you mean by client level ordering ? Is that reorder the events for processing according to say a datetime field ? Yes that would be fine.
Vector clocks are a good way of handling this.
Utc Datetime should suffice in most cases its minutes to hours between these events ( except for one) but comms could be out for hours to a day. If this becomes non tenable than we will move to Vector clocks.
experience the problems to watch out for are not so much the
projections having different order of events on multiple nodes (this
can be handled in projection code)
Do you mean reprocess projections on a conflict detection ( ie out of order)
but in two nodes having done things
that they wouldn’t have been able to do if they knew what the other
Yes that is an issue but the device responsible has human over rides . Our biggest issue is things looking weird on other nodes ( audit / super visor) if things are not processed in the right order ( its pretty much read only at this point) , if some data is missing that is ok as long as it is eventually ok .