Neet abstraction/description of your challenge! Based on what you have described, I would wrap my initial (how many bananas) queries individually and use a dispatch routine to keep track of when I get all answers back, maintaining an open session to each of my back end servers. Then do the same with my second query on the still open sessions. Once the answers are recieved, close the sessions, unless your asking the questions every few seconds...
There are a lot of open questions here though:
- why the need for speed? Because there are many such queries? or because the number of bananas on each machine or their price changes rapidly?
- how important is the time between answers to the query from machine to machine?
- is an (held)open session debtrimental?
Hope I didn't completely miss the point.
...the majority is always wrong, and always the last to know about it...