The buffer capability would be a very welcome feature ... Currently one has to implement his own persistence mechanism in order to get true QoS 2 so looking forward to that one.
While we're on the topic of in-flight messages, during testing I was in a situation where my broker was "throttling" (read: rejecting)" all messages to a particular topic :
/var/log/activemq/activemq.log.3:2015-01-26 12:14:40,202 [Q NIO Worker 80] INFO Topic - topic://testTopic, Usage Manager memory limit reached 1048576. Producers will be throttled to the rate at which messages are removed from this destination to prevent flooding it. See
http://activemq.apache.org/producer-flow-control.html for more info.
This resulted in Paho being unable to clear the current 10 inflight-messages for that topic. As a result Paho couldn't publish anything anymore. (not even to different topics).
Perhaps it would be interesting to maintain a max number of in-flight messages on a per topic basis. That way one topic that is "mis-behaving" would not bring down the whole system. But perhaps the buffer will solve that problem.