📝 Feature Request: Expose create_producer Parameters in pulsar.asyncio.Client
Summary
I'd like to request enhanced support for configuring producers in the pulsar.asyncio.Client by exposing the same parameters available in the sync Client.create_producer(...) method.
Motivation
The current asyncio version of the Pulsar Python client is ideal for modern async applications (e.g., FastAPI, asyncio event loops). However, it lacks support for configuring producers with the full range of parameters — such as:
batching_enabled
compression_type
message_routing_mode
block_if_queue_full
producer_name
- and others
This limits its usability in production environments that require more granular control over performance, reliability, and behavior.
Proposal
Update pulsar.asyncio.Client.create_producer() to accept and forward the same optional keyword arguments as the sync Client.create_producer(). This can likely be done by aligning its signature and implementation more closely with the existing sync interface.
Benefits
- Enables parity between sync and async usage
- Reduces the need to fall back to thread-based workarounds
- Makes it easier to build scalable, async-native services with Pulsar
- Encourages adoption of the asyncio interface
Example Use Case
producer = await client.create_producer(
"my-topic",
batching_enabled=True,
compression_type=pulsar.CompressionType.LZ4,
producer_name="metrics-publisher"
)
References
Thank you
Thanks for all your work on this client!
📝 Feature Request: Expose
create_producerParameters inpulsar.asyncio.ClientSummary
I'd like to request enhanced support for configuring producers in the
pulsar.asyncio.Clientby exposing the same parameters available in the syncClient.create_producer(...)method.Motivation
The current
asyncioversion of the Pulsar Python client is ideal for modern async applications (e.g., FastAPI, asyncio event loops). However, it lacks support for configuring producers with the full range of parameters — such as:batching_enabledcompression_typemessage_routing_modeblock_if_queue_fullproducer_nameThis limits its usability in production environments that require more granular control over performance, reliability, and behavior.
Proposal
Update
pulsar.asyncio.Client.create_producer()to accept and forward the same optional keyword arguments as the syncClient.create_producer(). This can likely be done by aligning its signature and implementation more closely with the existing sync interface.Benefits
Example Use Case
References
pulsar-client-pythonThank you
Thanks for all your work on this client!