I am trying to determine if Event Store is a good fit for my use case. I have many individual systems spread throughout the world without dependable internet access. I would like these systems to write events to a local queue that then forward the events on to a master event store (presumably Event Store) when a connection is available. When the events are ingested I would like each stream to recalculate its results (projections?) from that point forward in time. Can Event Store deal with out of order events like this?
Here is a scenario:
-
Node 1 has Event 1 occur at 9:00 A.M. UTC - but there is no internet to forward it on
-
Node 2 has Event 2 occur at 10:00 A.M. UTC - and makes it into the master event store
-
Node 1 internet comes back online and forwards Event 1 to master event store
-
Master event store should recalculate the streams results as if Event 1 happened first and Event 2 happened second.
I do understand that depending upon clock synchronization is not ideal but am not seeing great alternatives in this scenario.
So my questions are; is this possible with Event Store? If so, does anyone have any examples of ingesting and processing events out of order?
Thanks,
Justin