For federation exchange links, the upstream exchange name (internal) is a composition of the upstream queue name and suffix tag. The upstream queue name is initialized and created on upstream consumer initialization and held in process state. Meanwhile on initializing upstream bindings, the upstream queue name procedure is being repeatedly called/executed, when already held state, which is/can be inefficient, bearing in mind the repeated rabbit_nodes:cluster_name() calls as well. This change ensures the upstream exchange name (internal) compositions reuse composed upstream queues held in the link's state.
Types of Changes
[x] Bugfix (non-breaking change which fixes issue #NNNN)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
Proposed Changes
For federation exchange links, the upstream exchange name (internal) is a composition of the upstream queue name and suffix tag. The upstream queue name is initialized and created on upstream consumer initialization and held in process state. Meanwhile on initializing upstream bindings, the upstream queue name procedure is being repeatedly called/executed, when already held state, which is/can be inefficient, bearing in mind the repeated
rabbit_nodes:cluster_name()
calls as well. This change ensures the upstream exchange name (internal) compositions reuse composed upstream queues held in the link's state.Types of Changes
Checklist
CONTRIBUTING.md
document