0.1.1.1 : Communication pattern
The communication pattern is based on data pushing: each Daemon pushes data directly to the desired receiver, as Figure 1 illustrates. There is no central broker: each Daemon holds a direct socket connection to every other Daemon it needs to communicate with.
When a confirmation is required (isConfirmationNeeded = true), the sending Daemon stores the message locally with a timestamp. Upon receiving a MESSAGE_CONFIRMATION, the sender computes the round-trip latency and stores it in its communication statistics. If no confirmation is received before the configured timeout (daemon_required_response_timeout), the pending message is discarded and a warning is logged.