ArMem Servers + Viewer: Add replay/reliving/remembering of recorded memory data
Similar to ArViz replay:
- Memory servers have an interface function which specifies the current replay time
- Memory servers behave like they would have at this point in time: Queries ignore any "future" snapshots, and updates are published for snapshots that have newly become "visible" (just as they would have arrived)
- Viewer has a time line (slider) for a specific episode (time interval)
- Viewer allows to "replay" the memories (at specified speed, ...)
- During replay, viewer continuously sends the current time to the memory servers
Visible behavior for clients:
- Clients' queries do not yield any "future" snapshots
- Clients receive memory updates as if they would just have arrived
- This allows clients to be tested on recorded data
- To test a client using data B = f(A), it is not necessary to run the processing f(A) as B itself is already recorded => arbitrary parts of a pipeline could be tested standalone
To be discussed:
- How to deal with new data produced by clients?
- Ignore it completely
- Take it into account => may lead to duplicates in the result
- Ignore new data by default, but allow single servers/segments to accept new data.
- Probably, we also want to configure which memory servers take part in the replay and which just behave normally (for testing their online behavior)