Skip to main content

What’s New in Apache Pulsar 2.10.3

· 3 min read

The Apache Pulsar community releases version 2.10.3! 50 contributors provided improvements and bug fixes that delivered 155 commits. Thanks for all your contributions.

This blog walks through the most noteworthy changes. For the complete list including all feature enhancements and bug fixes, check out the Pulsar 2.10.3 Release Notes.

Add getState in transactions for client APIs (PR-17423)


In earlier versions, the state of transactions on the client side could not be obtained with the client APIs. Users have no way to check the state of transactions before ending them.


Add an interface to get the state of transactions.

Enable delayed transaction messages (PR-17548)


In earlier versions, delayed message delivery and transaction messages could not be used simultaneously. When sending a transaction message with a certain delay and committing this transaction, the messages sent by transactions are immediately received by consumers without any expected delay.


Allow clients to send delayed messages with transactions using trackDelayedDelivery.

Allow configuring and disabling the size of lookahead for detecting fixed delays in messages (PR-17907)


When detecting that all messages have a fixed delay time, it’s helpful that users can configure the size of lookahead to detect and pause the reads from cursors. But in earlier versions, the size of `lookahead is pre-defined and fixed, which lacks flexibility and limits the usage.


Allow configuring and disabling the size of lookahead for detecting fixed delays in messages.

Fix memory leak while offloading ledgers (PR-18500)


In earlier versions, BlockAwareSegmentInputStreamImpl never releases the BookKeeper entries in the close method, leading to OutOfDirectMemory errors on brokers that frequently run offloading activities. This PR fixes the incorrect if conditions.

Fix namespace cannot be deleted by force (PR-18307)


In earlier versions, when you delete a namespace by force, if __transaction_buffer_snapshot and __change_events (system topic for topic policies) have been deleted, then the deletion of regular topics will fail because it cannot clear the snapshots and topic policies.


Delete regular topics before deleting system topics when deleting a namespace. And deleting the system topic __change_events does not clear its topic policy.

What’s Next?

If you are interested in learning more about Pulsar 2.10.3, you can download and try it out now!

For more information about the Apache Pulsar project and current progress, visit the Pulsar website, follow the project on Twitter @apache_pulsar, and join Pulsar Slack!