I am currently evaluating the suitability of Apache Pulsar for building a distributed task queue using a "shared" subscription.
One required feature is to get all currently running tasks for certain topics, or to get at least the number of currently running tasks. By this I mean all messages for a given subscription that have been received by consumers but are not yet acknowledged. Is this possible, and if so, how?
From what I know you can't because this abstraction of marking an unacknowledged message as in-process does not exists. The broker dispatches say 1500 unack messages to the consumer. It stores it in an internal in-memory queue and each time you ask for a message using the consumer API, you get one from that in-memory queue, and when you're done you mark it as acknowledged.