merlimat opened a new pull request, #25721: URL: https://github.com/apache/pulsar/pull/25721
## Summary Adds PIP-474, a sub-PIP of [PIP-460: Scalable Topics](https://github.com/apache/pulsar/blob/master/pip/pip-460.md), describing the migration path from regular (partitioned or non-partitioned) topics to scalable topics. The document covers: - **V5 SDK resolution rule** — the V5 SDK opens a single scalable-topic lookup session for any input form (`topic://`, `persistent://`, or short name); the broker responds with either a real DAG layout or a synthetic layout that wraps the existing partitions as **special segments**. No probe call, no client-side TTL, no separate v4-wrapper code path. - **Migration protocol** — an admin command (`pulsar-admin scalable-topics migrate-to-scalable`) that flips a topic from regular to scalable in a single metadata-store CAS, with no data copy and no cursor migration. Each old partition becomes a sealed parent segment in the new DAG; new active children with range-based routing are created alongside, and the existing subscription-controller drain-before-assign protocol preserves per-key ordering across the migration boundary. - **Migration safety** — the migration command is API-enforced: it rejects with HTTP 409 if any v4 producer/consumer connections are still attached, ensuring all clients have been upgraded before the metadata flip. - **Broker-side v4 guard** — once a topic is scalable, the broker returns `TopicMigrated` to v4 lookups for the equivalent `persistent://` name, making "once scalable, always scalable" robust against stale v4 clients and tooling. - **Public-facing changes** — new admin REST endpoint, `ScalableTopics.migrateToScalable(...)` admin client method, `pulsar-admin scalable-topics migrate-to-scalable` CLI, broker config kill switch, and the `migratedFrom` informational field on `ScalableTopicMetadata`. This PIP only changes documentation under `pip/`. Implementation will land in subsequent PRs against the parent PIP-460 tracking issue. ## Test plan - [ ] Review the document on the PIP mailing list thread (TBD link to be added once thread is open). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
