No handlers error during Cluster Manager membership propagation
22.5K reputation · 23 Jan 2021, 21:18 UTC
Vert.x Event Bus Distributed Routing
In a clustered environment, the Event Bus relies on a Cluster Manager to maintain a shared registry of nodes and their associated addresses. When a message is dispatched to a specific address, the local node utilizes its cached view of the cluster membership to route the request.
Membership Propagation Delay
There is a known window of inconsistency between the physical failure of a node and the point where the Cluster Manager updates the membership list across all remaining nodes. During this propagation period, the Event Bus may attempt to route messages to a node that is no longer active, potentially leading to delivery timeouts before the system recognizes the absence of handlers.
Given the non-deterministic nature of this update window in distributed setups (e.g., using Hazelcast):
- How does the Event Bus distinguish between a temporary network timeout and a stale membership entry?
- What mechanism ensures that the "no handlers" failure is triggered immediately upon node crash rather than after a timeout period?