PIP-1 | Pulsar Proxy |
PIP-2 | Non Persistent topic |
PIP-3 | Message dispatch throttling |
PIP-4 | Pulsar End to End Encryption |
PIP-5 | Event time |
PIP-6 | Guaranteed Message Deduplication |
PIP-7 | Pulsar Failure domain and Anti affinity namespaces |
PIP-8 | Pulsar beyond 1M topics |
PIP-9 | Adding more Security checks to Pulsar Proxy |
PIP-10 | Remove cluster for namespace and topic names |
PIP-11 | Short topic names |
PIP-12 | Introduce builder for creating Producer Consumer Reader |
PIP-13 | Subscribe to topics represented by regular expressions |
PIP-14 | Topic compaction |
PIP-15 | Pulsar Functions |
PIP-16 | Pulsar “instance” terminology change |
PIP-17 | Tiered storage for Pulsar topics |
PIP-18 | Pulsar Replicator |
PIP-19 | Pulsar SQL |
PIP-20 | Mechanism to revoke TLS authentication |
PIP-21 | Pulsar Edge Component |
PIP-22 | Pulsar Dead Letter Topic |
PIP-23 | Message Tracing By Interceptors |
PIP-24 | Simplify memory settings |
PIP-25 | Token based authentication |
PIP-26 | Delayed Message Delivery |
PIP-27 | Add checklist in github pull request template |
PIP-28 | Pulsar Proxy Gateway Improvement |
PIP-29 | One package for both pulsar-client and pulsar-admin |
PIP-30 | change authentication provider API to support mutual authentication |
PIP-31 | Transaction Support |
PIP-32 | Go Function API, Instance and LocalRun |
PIP-33 | Replicated subscriptions |
PIP-34 | Add new subscribe type Key_shared |
PIP-35 | Improve topic lookup for topics that have high number of partitions |
PIP-36 | Max Message Size |
PIP-37 | Large message size handling in Pulsar |
PIP-38 | Batch Receiving Messages |
PIP-39 | Namespace Change Events |
PIP-40 | Pulsar Manager |
PIP-41 | Pluggable Protocol Handler |
PIP-42 | KoP - Kafka on Pulsar |
PIP-43 | producer send message with different schema |
PIP-44 | Separate schema compatibility checker for producer and consumer |
PIP-45 | Pluggable metadata interface |
PIP-46 | Next-gen Proxy |
PIP-47 | Time Based Release Plan |
PIP-48 | hierarchical admin api |
PIP-49 | Permission levels and inheritance |
PIP-50 | Package Management |
PIP-51 | Tenant policy support |
PIP-52 | Message dispatch throttling relative to publish rate |
PIP-53 | Contribute DotPulsar to Apache Pulsar |
PIP-54 | Support acknowledgement at batch index level |
PIP-55 | Refresh Authentication Credentials |
PIP-56 | Python3 Migration |
PIP-57 | Improve Broker's Zookeeper Session Timeout Handling |
PIP-58 | Support Consumers Set Custom Retry Delay |
PIP-59 | gPRC Protocol Handler |
PIP-60 | Support Proxy server with SNI routing |
PIP-61 | Advertised multiple addresses |
PIP-62 | Move connectors, adapters and Pulsar Presto to separate repositories |
PIP-63 | Readonly Topic Ownership Support |
PIP-64 | Introduce REST endpoints for producing, consuming and reading messages |
PIP-65 | Adapting Pulsar IO Sources to support Batch Sources |
PIP-66 | Pulsar Function Mesh |
PIP-67 | Pulsarctl - An alternative tools of pulsar-admin |
PIP-68 | Exclusive Producer |
PIP-69 | Schema design for Go client |
PIP-70 | Introduce lightweight broker entry metadata |
PIP-71 | Pulsar SQL migrate SchemaHandle to presto decoder |
PIP-72 | Introduce Pulsar Interface Taxonomy: Audience and Stability Classification |
PIP-73 | Configurable data source priority for message reading |
PIP-74 | Pulsar client memory limits |
PIP-75 | Replace protobuf code generator |
PIP-76 | Streaming Offload |
PIP-77 | Contribute Supernova to Apache Pulsar |
PIP-78 | Generate Docs from Code Automatically |
PIP-79 | Reduce redundant producers from partitioned producer |
PIP-80 | Unified namespace-level admin API |
PIP-81 | Split the individual acknowledgments into multiple entries |
PIP-82 | Tenant and namespace level rate limiting |
PIP-83 | Pulsar client: Message consumption with pooled buffer |
PIP-84 | Pulsar client: Redeliver command add epoch |
PIP-85 | Expose Pulsar-Client via Function/Connector BaseContext |
PIP-86 | Pulsar Functions: Preload and release external resources |
PIP-87 | Upgrade Pulsar Website Framework (Docusaurus) |
PIP-88 | Replicate schemas across multiple |
PIP-89 | Structured document logging |
PIP-90 | Expose broker entry metadata to the client |
PIP-91 | Separate lookup timeout from operation timeout |
PIP-92 | Topic policy across multiple clusters |
PIP-93 | Transaction performance tools |
PIP-94 | Message converter at broker level |
PIP-95 | Smart Listener Selection with Multiple Bind Addresses |
PIP-96 | Message payload processor for Pulsar client |
PIP-97 | Asynchronous Authentication Provider |
PIP-98 | Redesign Pulsar Information Architecture |
PIP-99 | Pulsar Proxy Extensions |
PIP-100 | Pulsar pluggable topic factory |
PIP-101 | Add seek by index feature for consumer |
PIP-104 | Add new consumer type: TableView |
PIP-105 | Support pluggable entry filter in Dispatcher |
PIP-106 | Negative acknowledgment backoff |
PIP-107 | Introduce the chunk message ID PIP |
PIP-108 | Pulsar Feature Matrix (Client and Function) |
PIP-109 | Introduce Bot to Improve Efficiency of Developing Docs |
PIP-110 | Topic metadata |
PIP-111 | Add messages produced by Protocol Handler When checking maxMessagePublishBufferSizeInMB |
PIP-112 | Generate Release Notes Automatically |
PIP-116 | Create Pulsar Writing Style Guide |
PIP-117 | Change Pulsar Standalone defaults |
PIP-118 | Do not restart brokers when ZooKeeper session expires |
PIP-119 | Enable consistent hashing by default on KeyShared dispatcher |
PIP-120 | Enable client memory limit by default |
PIP-121 | Pulsar cluster level auto failover |
PIP-122 | Change loadBalancer default loadSheddingStrategy to ThresholdShedder |
PIP-123 | Introduce Pulsar metadata CLI tool |
PIP-124 | Create init subscription before sending message to DLQ |
PIP-129 | Introduce intermediate state for ledger deletion |
PIP-130 | Apply redelivery backoff policy for ack timeout |
PIP-131 | Resolve produce chunk messages failed when topic level maxMessageSize is set |
PIP-132 | Include message header size when check maxMessageSize for non-batch message on the client side |
PIP-135 | Include MetadataStore backend for Etcd |
PIP-136 | Sync Pulsar policies across multiple clouds |
PIP-137 | Pulsar Client Shared State API |
PIP-143 | Support split bundle by specified boundaries |
PIP-144 | Making SchemaRegistry implementation configurable |
PIP-146 | ManagedCursorInfo compression |
PIP-148 | Create Pulsar client release notes |
PIP-149 | Making the REST Admin API fully async |
PIP-152 | Support subscription level dispatch rate limiter setting |
PIP-154 | Max active transaction limitation for transaction coordinator |
PIP-155 | Drop support for Python2 |
PIP-156 | Build and Run Pulsar Server on Java 17 |
PIP-157 | Bucketing topic metadata to allow more topics per namespace |
PIP-160 | Make transactions work more efficiently by aggregation operation for transaction log and pending ack store |
PIP-161 | Exclusive Producer: new mode ExclusiveWithFencing |
PIP-162 | LTS Releases |
PIP-165 | Auto release client useless connections |
PIP-173 | Create a built-in Function implementing the most common basic transformations |
PIP-174 | Provide new implementation for broker dispatch cache |
PIP-175 | Extend time based release process |
PIP-176 | Refactor Doc Bot |
PIP-177 | Add the classLoader field for SchemaDefinition |
PIP-178 | Multiple snapshots for transaction buffer |
PIP-179 | Support the admin API to check unknown request parameters |
PIP-180 | Shadow Topic, an alternative way to support readonly topic ownership |
PIP-181 | Pulsar Shell |
PIP-182 | Provide new load balance placement strategy implementation for ModularLoadManagerStrategy |
PIP-183 | Reduce unnecessary REST call in broker |
PIP-184 | Topic specific consumer priorityLevel |
PIP-186 | Introduce two phase deletion protocol based on system topic |
PIP-187 | Add API to analyse a subscription backlog and provide a accurate value |
PIP-188 | Cluster migration or Blue-Green cluster deployment support in Pulsar |
PIP-189 | No batching if only one message in batch |
PIP-190 | Simplify documentation release and maintenance strategy |
PIP-191 | Support batched message using entry filter |
PIP-192 | New Pulsar Broker Load Balancer |
PIP-193 | Sink preprocessing Function |
PIP-194 | Pulsar client: seek command add epoch |
PIP-195 | New bucket based delayed message tracker |
PIP-198 | Standardize PR Naming Convention using GitHub Actions |
PIP-201 | Extensions mechanism for Pulsar Admin CLI tools |
PIP-204 | Extensions for broker interceptor |
PIP-205 | Reactive Java client for Apache Pulsar |
PIP-209 | Separate C++/Python clients to own repositories |
PIP-243 | Register Jackson Java 8 support modules by default |
PIP-249 | Pulsar website redesign |
PIP-259 | Make the config httpMaxRequestHeaderSize of the pulsar web server to configurable |
PIP-261 | Restructure Getting Started section |
PIP-264 | Support OpenTelemetry metrics in Pulsar |
PIP-265 | PR-based system for managing and reviewing PIPs |
PIP-275 | Rename numWorkerThreadsForNonPersistentTopic to topicOrderedExecutorThreadNum |
PIP-276 | Add pulsar prefix to topic_load_times metric |
PIP-277 | Add current cluster marking to clusters list command |
PIP-278 | Pluggable topic compaction service |
PIP-279 | Support topic-level policies using TableView API |
PIP-280 | Refactor CLI Argument Parsing Logic for Measurement Units using JCommander's custom converter |
PIP-281 | Add notifyError method on PushSource |
PIP-282 | Add Key_Shared subscription initial position support |
PIP-284 | Migrate topic policies implementation to use TableView |
PIP-286 | Support get position based on timestamp with topic compaction |
PIP-289 | Secure Pulsar Connector Configuration |
PIP-290 | Support message encryption in WebSocket proxy |
PIP-292 | Enforce token expiration time in the Websockets plugin |
PIP-293 | Support reader to read compacted data |
PIP-296 | Add getLastMessageIds API for Reader |
PIP-297 | Support terminating Function & Connector with the fatal exception |
PIP-298 | Support read transaction buffer snapshot segments from earliest |
PIP-299 | Support setting max unacked messages at subscription level |
PIP-300 | Add RedeliverCount field to CommandAck |
PIP-301 | Separate load data storage from configuration metadata store |
PIP-302 | Support for TableView with strong read consistency |
PIP-303 | Support PartitionedTopicStats exclude publishers and subscriptions |
PIP-305 | Add OpAddEntry and pendingData statistics info in JVM metrics |
PIP-306 | Support subscribing multi topics for WebSocket |
PIP-307 | Optimize Bundle Unload(Transfer) Protocol for ExtensibleLoadManager |
PIP-312 | Use StateStoreProvider to manage state in Pulsar Functions endpoints |
PIP-313 | Support force unsubscribe using consumer api |
PIP-315 | Configurable max delay limit for delayed delivery |
PIP-318 | Don't retain null-key messages during topic compaction |
PIP-320 | OpenTelemetry Scaffolding |
PIP-321 | Split the responsibilities of namespace replication-clusters |
PIP-322 | Pulsar Rate Limiting Refactoring |
PIP-323 | Complete Backlog Quota Telemetry |
PIP-324 | Switch to Alpine Linux base Docker images |
PIP-325 | Support reading from transaction buffer for pending transaction |
PIP-326 | Create a BOM to ease dependency management |
PIP-327 | Support force topic loading for unrecoverable errors |
PIP-329 | Strategy for maintaining the latest tag to Pulsar docker images |
PIP-330 | getMessagesById gets all messages |
PIP-335 | Support Oxia metadata store plugin |
PIP-337 | SSL Factory Plugin to customize SSLContext/SSLEngine generation |
PIP-339 | Introducing the --log-topic Option for Pulsar Sinks and Sources |
PIP-342 | Support OpenTelemetry metrics in Pulsar client |
PIP-343 | Use picocli instead of jcommander |
PIP-344 | Correct the behavior of the public API pulsarClient.getPartitionsForTopic(topicName) |
PIP-347 | add role field in consumer's stat |
PIP-348 | Trigger offload on topic load stage |
PIP-349 | Add additionalSystemCursorNames ignore list for ttl check |
PIP-350 | Allow to disable the managedLedgerOffloadDeletionLagInMillis |
PIP-351 | Additional options for Pulsar-Test client to support KeyStore based TLS |
PIP-352 | Event time based topic compactor |
PIP-353 | Improve transaction message visibility for peek-messages cli |
PIP-354 | apply topK mechanism to ModularLoadManagerImpl |
PIP-355 | Enhancing Broker-Level Metrics for Pulsar |
PIP-356 | Support Geo-Replication starts at earliest position |
PIP-357 | Correct the conf name in load balance module. |
PIP-358 | let resource weight work for OverloadShedder, LeastLongTermMessageRate, ModularLoadManagerImpl. |
PIP-359 | Support custom message listener executor for specific subscription |
PIP-360 | Admin API to display Schema metadata |
PIP-363 | Add callback parameters to the method: org.apache.pulsar.client.impl.SendCallback.sendComplete . |
PIP-364 | Introduce a new load balance algorithm AvgShedder |
PIP-366 | Support to specify different config for Configuration and Local Metadata Store |
PIP-367 | Propose a Contributor Repository for Pulsar |
PIP-368 | Support lookup based on the lookup properties |
PIP-369 | Flag based selective unload on changing ns-isolation-policy |
PIP-370 | configurable remote topic creation in geo-replication |
PIP-373 | Add a topic's system prop that indicates whether users have published TXN messages in before. |
PIP-374 | Visibility of messages in receiverQueue for the consumers |
PIP-376 | Make Topic Policies Service Pluggable |
PIP-378 | Add ServiceUnitStateTableView abstraction (ExtensibleLoadMangerImpl only) |
PIP-379 | Key_Shared Draining Hashes for Improved Message Ordering |
PIP-380 | Support setting up specific namespaces to skipping the load-shedding |
PIP-381 | Handle large PositionInfo state |
PIP-383 | Support granting/revoking permissions for multiple topics |
PIP-384 | ManagedLedger interface decoupling |
PIP-389 | Add Producer config compressMinMsgBodySize to improve compression performance |
PIP-391 | Improve Batch Messages Acknowledgment |
PIP-392 | Add configuration to enable consistent hashing to select active consumer for partitioned topic |
PIP-393 | Improve performance of Negative Acknowledgement |
PIP-395 | Add Proxy configuration to support configurable response headers for http reverse-proxy |
PIP-396 | Align WindowFunction's WindowContext with BaseContext |
PIP-399 | Fix Metric Name for Delayed Queue |
PIP-401 | Support set batching configurations for Pulsar Functions&Sources |
PIP-402 | Role Anonymizer for Pulsar Logging |
PIP-404 | Introduce per-ledger properties |
PIP-406 | Introduce metrics related to dispatch throttled events |
PIP-407 | Add a newMessage API to create a message with a schema and transaction |
PIP-409 | support producer configuration for retry/dead letter topic producer |
PIP-412 | Support setting messagePayloadProcessor in Pulsar Functions and Sinks |
PIP-414 | Enforce topic consistency check |
PIP-415 | Support getting message ID by index |
PIP-416 | Add a new topic method to implement trigger offload by size threshold |
PIP-420 | Provides an ability for Pulsar clients to integrate with third-party schema registry service |
PIP-421 | Require Java 17 as the minimum for Pulsar Java client SDK |
PIP-422 | Support global topic-level policy: replicated clusters and new API to delete topic-level policies |
PIP-425 | Support connecting with next available endpoint for multi-endpoint serviceUrls |
PIP-427 | Align pulsar-admin Default for Mark-Delete Rate with Broker Configuration |
PIP-428 | Change TopicPoliciesService interface to fix consistency issues |
PIP-429 | Optimize Handling of Compacted Last Entry by Skipping Payload Buffer Parsing |
PIP-430 | Pulsar Broker cache improvements: refactoring eviction and adding a new cache strategy based on expected read count |
PIP-431 | Add Creation and Last Publish Timestamps to Topic Stats |
PIP-432 | Add isEncrypted field to EncryptionContext |
PIP-433 | Optimize the conflicts of the replication and automatic creation mechanisms, including the automatic creation of topics and schemas |
PIP-435 | Add startTimestamp and endTimestamp for consuming messages in client cli |
PIP-436 | Add decryptFailListener to Consumer |