I am curious as to the exact mechanics of message exchange between the broker and the consumer.<div><br></div><div>1. Consumer opens a TCP connection to the broker.</div><div>2. Consumers subscribes to receive some messages from the broker - by binding the topic binding keys to the channel on a named queue.</div><div>3. Now whenever the broker gets some messages (from some producers) posted to that queue with a routing key matching any of the topic binding keys above, it will send the message to the subscribed consumer.</div><div><br></div><div>What are the exact underlying mechanics of step 3? Does the broker just use the TCP connection opened in step 1 and Push messages whenever it gets them OR does the consumer client library do a tight polling ("Hey broker get me messages if you have any") with the broker under the covers even though to the ultimate consumer it appears to be an asynchronous callback based mechanism?</div><div><br></div>