Store and forward events and event ordering

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:

  1. Node 1 has Event 1 occur at 9:00 A.M. UTC - but there is no internet to forward it on

  2. Node 2 has Event 2 occur at 10:00 A.M. UTC - and makes it into the master event store

  3. Node 1 internet comes back online and forwards Event 1 to master event store

  4. 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?



A good approach here might be to keep events in separate streams depending on their source (totally ordered), and then merge them (probably based on timestamp in lieu of anything else) into another stream when all have arrived, deriving further models from that.