This repository was archived by the owner on Nov 20, 2025. It is now read-only.

Description
The current implementation is essentially "single-threaded" since it requests a single message and then wait for it to arrive, then we handle that message before sending back the ACK or next_message.
My use-case at work would certainly benefit from the ability to specify a limit of how many messages to handle in parallel. Something like:
@impl Jetstream.PullConsumer
def init(nil) do
consumer = [
connection_name: :gnat,
stream_name: "my_stream",
consumer_name: "my_stream",
max_concurrency: 10
]
{:ok, nil, consumer}
end
This would match the same option name from Task.async_stream in the standard library.