I am currently evaluating the suitability of Apache Pulsar to build a distributed task queue using a "shared" subscription.
One required feature is to limit the number of concurrently processed tasks for certain topics. By this I mean the sum of all messages for a given subscription that have been received by consumers but are not yet acknowledged. Is this possible, and if so, how?
well, you are in charge of coding and deploying your consumers. For example, if a topic has 10 consumers and each consumer processes 5 messages in parallel, then you will never have more than 50 concurrently processed messages.