== Pulsar: no partition ceiling, but the receiver queue decides who gets the work ==

one non-partitioned topic, 40 messages, 5 consumers, Shared subscription

receiverQueueSize left at the default (1000):
  consumer-1 -> 40 messages
  consumer-2 -> 0 messages
  consumer-3 -> 0 messages
  consumer-4 -> 0 messages
  consumer-5 -> 0 messages
  consumers that received nothing : 4

receiverQueueSize(1):
  consumer-1 -> 8 messages
  consumer-2 -> 8 messages
  consumer-3 -> 8 messages
  consumer-4 -> 8 messages
  consumer-5 -> 8 messages
  consumers that received nothing : 0

The topic has no partitions and five consumers can still share the work --
in Kafka the same shape needs at least five partitions, chosen when the
topic was created. But the default receiver queue is 1000 messages, so the
first consumers to connect pull the whole 40-message backlog into their own
buffers before the rest ask for anything, and the subscription looks
broken. Which consumers win is a race and varies between runs -- one
consumer taking all forty, or two taking twenty each -- but the consumers
that lose it see nothing at all. This is the same trap as RabbitMQ's
unbounded prefetch, with a different name and a much larger default.

