Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.8.0
Description
currently networkTTL in a networkConnector (default=1) means that a message can go one hop and demand (or info about a consumer) can go one hop.
In a network (A<>B) messages and consumers can flow.
In a linear network (A<>B<>C) networkTTL needs to be 2 for messages and consumers to flow two hops from A to C.
In a mesh topology, (A<>B<>C<A>) a networkTTL=1 for consumers makes sense because there is at most one hop. However for messages, networkTTL > 1 is necessary if consumers need to hop around between brokers. Imagine a consumer on A which pulls messages to A from B, then the consumer moves to C, messages now need to hop again from A to C. This can repeat, essentially messageTTL(networkTTL) needs to be infinite.
With consumerTTL > 1 in a mesh, managing demand for proxy (demand) consumers and proxy proxy consumers becomes very difficult.