Epoch-based reporting
Right now there are some issues regarding EVE reporting (say what VMs it's running and what networks) that:
1) We get reports about EVE state not very often, especially when we actively execute commands. We may wait a while (e.g. for 5min) since we executed the command but do not see the response from EVE
2) If Eve just works we may not want to see that something has changed, until it was changed or is broken.
The suggestion is to change the logging mechanism and rely on Epoch synchronization.
That means
1) We do not get any regular logs except very tiny heartbeat which contains the epoch and the diff number.
2) We can ask for complete state log by changing Epoch number. We may submit another config with the changed epoch number or have a special API.
3) We get the diff log once something changes in the Eve.
So a normal behavior will be:
1) Check the heartbeat
2) If the log in the controller/Eden is the most recent one - all is fine
3) If the log in the controller/Eden is outdated - change Epoch and request a full state
This way we minimize the network load and still have the actual state. Also we support the loss of the controller.