| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
For the complete list, check the full changelog.
For the complete list, check the full changelog.
For the complete list, check the full changelog.
For the complete list, check the full changelog.
Apache Pulsar 5.0.0-M1 is the first milestone release on the road to Apache Pulsar 5.0.0, with general availability expected later in 2026. It is a preview: an early build that puts the major new features of 5.0 in your hands so you can try them against real workloads and send feedback ahead of the GA release. It is not meant for production. Two changes stand out — Scalable Topics, a new topic type that grows and shrinks on its own, and the promotion of Oxia to Pulsar's recommended metadata store — alongside a migration of the build system to Gradle, the split of the IO connectors into a separate repository, and structured logging.
For a full walkthrough, see the announcement: Apache Pulsar 5.0.0-M1: A Preview of the Next Major Release.
Scalable Topics (Topics v5). A new topic type that replaces fixed partitions with range-based segments, so a topic can scale up and down by transparently splitting and merging segments while preserving per-key ordering. This avoids the ordering breakage and operational drift that come from changing the partition count of a regular partitioned topic. The work spans the broker-side controller (PIP-468), metadata-driven transactions (PIP-473), regular-to-scalable topic migration (PIP-475), and automatic split/merge (PIP-483). See PIP-460.
New V5 Java client API. A clean-slate, purpose-built client API for scalable topics, shipped as a new, additive pulsar-client-v5 module — the existing pulsar-client and pulsar-client-api modules are unchanged, so current applications keep working. It replaces the classic Consumer/Reader and the four subscription types with three purpose-built consumers: QueueConsumer (parallel, individually-acknowledged work-queue consumption with dead-letter support), StreamConsumer (ordered, cumulative acks), and CheckpointConsumer (for stream processors such as Flink and Spark that track their own position). The V5 client also works against existing partitioned and non-partitioned topics, and a consumer can subscribe to an entire namespace. In M1 it ships for Java; other language SDKs will follow before GA. See PIP-466.
Oxia is now the recommended metadata store. Oxia becomes the recommended metadata store for new Pulsar clusters in 5.0 and is the backend of choice for scalable topics, whose lookups build on its streaming watch sessions. ZooKeeper remains fully supported, and PIP-454 adds a live, zero-downtime migration framework that moves an existing cluster from ZooKeeper to Oxia while the data plane keeps publishing and consuming.
Build system migrated from Maven to Gradle. Builds now use ./gradlew instead of mvn, with task-level caching and parallelism that substantially reduce local and CI build times, and a central version catalog (gradle/libs.versions.toml) for dependency management. The migration is transparent to users consuming the published Maven artifacts, Docker images, and shaded client JARs. See PIP-463.
IO connectors split into a separate repository. The built-in Pulsar IO connectors have been moved out of the core repository so they can follow their own release cadence. See PIP-465.
Structured logging. Pulsar now emits structured logs through slog across the broker, client, managed-ledger, functions, and metadata modules, with flat JSON / OpenTelemetry log output and a PULSAR_LOG_FORMAT environment variable to switch formats easily. See PIP-467.
API and platform modernization. Pulsar migrated from javax.* to jakarta.* APIs (PIP-472), made Protobuf v4 the default, migrated REST API annotations from Swagger to OpenAPI 3, and now supports building and running on Java 25. Topic policies gained a legacy-aware, metadata-store-backed routing backend (PIP-469).
Security and dependency updates. This release bundles a large set of dependency upgrades that address numerous CVEs across Netty, Jetty, log4j, BouncyCastle, Thrift, vert.x, and async-http-client, and upgrades BookKeeper to 4.18.0. See Library updates below.
5.0.0-M1 is a major release that removes deprecated functionality and changes some APIs. Review the following before upgrading:
For the complete list, check the full changelog.
This release upgrades Jetty from 9.4.x to 12.1.8 to address several high-severity CVEs in Jetty 9.4.x (#25534). For background and discussion, see the dev list thread.
The upgrade introduces the following breaking changes:
AdditionalServlet interface change. The org.apache.pulsar.broker.web.plugin.servlet.AdditionalServlet interface was coupled directly to the Jetty 9 org.eclipse.jetty.servlet.ServletHolder class. This coupling has been removed, so external implementations of this plugin API need to be updated.
Athenz authentication requires Java 17+. pulsar-client-auth-athenz now depends on Jetty and therefore requires Java 17+. The Pulsar Client and Pulsar Admin client themselves remain Java 8+ compatible.
Prometheus metrics provider class relocation. The default Prometheus metrics provider classes for BookKeeper and ZooKeeper have been replaced because the previous defaults depended on Jetty 9.4.x. If you are using the previous default configuration file in your deployment, update the following settings:
| Config file | Setting | Old value | New value |
|---|---|---|---|
| bookkeeper.conf | statsProviderClass | org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider | org.apache.pulsar.metrics.prometheus.bookkeeper.PrometheusMetricsProvider |
| zookeeper.conf | metricsProvider.className | org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider | org.apache.pulsar.metrics.prometheus.zookeeper.PrometheusMetricsProvider |
Users of the Apache Pulsar Helm chart prior to version 4.6.0 will need to set the bookie.configData.statsProviderClass key to org.apache.pulsar.metrics.prometheus.bookkeeper.PrometheusMetricsProvider:
bookie:
configData:
statsProviderClass: "org.apache.pulsar.metrics.prometheus.bookkeeper.PrometheusMetricsProvider"For the complete list, check the full changelog.
| Back | FazBrowse Home | New Git URL |