Skip to content

[improve][pip] PIP-494: Scalable Topics Client Specification — authoritative reference and change process - #26447

Open
merlimat wants to merge 1 commit into
apache:masterfrom
merlimat:mmerli/pip-494
Open

[improve][pip] PIP-494: Scalable Topics Client Specification — authoritative reference and change process#26447
merlimat wants to merge 1 commit into
apache:masterfrom
merlimat:mmerli/pip-494

Conversation

@merlimat

@merlimat merlimat commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Motivation

Scalable topics (PIP-460 and its sub-PIPs 468/483/486) introduce a client model that differs materially
from classic topics: no application-visible partitions, a dynamic per-cluster segment layout the client
must track, client-side key routing, three consumer modes with distinct ordering/acknowledgment contracts,
a checkpoint position type, a controller-driven consumer-assignment protocol, and a family of new
binary-protocol commands. Today the only complete description of that behavior is the Java V5 client's
source, with rationale scattered across PIPs — not a workable basis for other-language SDKs or for
interoperability.

Modifications

Add PIP-494, a process PIP that:

  • Establishes spec/scalable-topics/ as the authoritative, language-neutral specification of the
    client API, its semantics, and the protocol-level interactions — the required base for any new client
    SDK adding scalable-topics support, and the reference for conformance.
  • Defines the change process: every normative change goes through a PIP whose specification edits
    land together with it (normally the same PR as the implementation); non-normative edits follow normal
    review.
  • Defines the reference-implementation relationship (Java V5 client), versioning (MAJOR.MINOR,
    MAJOR tied to the Pulsar LTS cadence), stability tiers (Stable/Experimental/Deprecated) with an
    LTS-anchored deprecation/removal mechanism, the spec's scope, and obligations on new SDKs.
  • Adopts the current work-in-progress draft as specification 1.0; it reflects the client API and
    semantics as designed in the scalable-topics PIPs and as implemented on master.

The PIP deliberately does not restate the specification's content. The WIP specification is at
https://github.com/merlimat/pulsar/tree/mmerli/scalable-topics-spec/spec/scalable-topics and will be
delivered separately.

Verifying this change

Documentation-only (a PIP); no code changes.

…itative reference and change process

Establish the Scalable Topics Client Specification (spec/scalable-topics/)
as the authoritative, language-neutral reference for the client API, its
semantics, and the protocol-level interactions — the base document for any
client SDK adding scalable-topics support — and define the process that
governs it: normative changes only via a PIP whose spec edits land with it,
the Java V5 client as reference implementation, MAJOR.MINOR versioning tied
to the Pulsar LTS cadence, Stable/Experimental/Deprecated tiers with an
LTS-anchored deprecation/removal mechanism, and conformance obligations for
new SDKs. The current work-in-progress draft is adopted as version 1.0.

Assisted-by: Claude Code (Fable 5.1)
@github-actions github-actions Bot added the PIP label Sep 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant