+ setForwarder(forwarder);
+
+ /*
+ * The process of replaying all messages may have taken a significant chunk of time, depending on type
+ * of messages, queue depth and available processing power. In extreme situations this may have already
+ * exceeded BACKEND_ALIVE_TIMEOUT_NANOS, in which case we are running the risk of not making reasonable forward
+ * progress before we start a reconnect cycle.
+ *
+ * Note that the timer is armed after we have sent the first message, hence we should be seeing a response
+ * from the backend before we see a timeout, simply due to how the mailbox operates.
+ *
+ * At any rate, reset the timestamp once we complete reconnection (which an atomic transition from the
+ * perspective of outside world), as that makes it a bit easier to reason about timing of events.
+ */
+ lastReceivedTicks = currentTime();