Pulsar 2.0 New

Pulsar 2.0 is a major new release for Pulsar that brings some bold changes to the platform, including simplified topic names

New features in Pulsar 2.0

Feature Description
Pulsar Functions A lightweight compute option for Pulsar

Major changes

There are a few major changes that you should be aware of, as they may significantly impact your day-to-day usage.

Properties versus tenants

Previously, Pulsar had a concept of properties. A property is essentially the exact same thing as a tenant, so the “property” terminology has been removed in version 2.0. The pulsar-admin properties command-line interface, for example, has been replaced with the pulsar-admin tenants interface. In some cases the properties terminology is still used but is now considered deprecated and will be removed entirely in a future release.

Topic names

Prior to version 2.0, all Pulsar topics had the following form:


Two important changes have been made in Pulsar 2.0:

No cluster component

The cluster component has been removed from topic names. Thus, all topic names now have the following form:


Existing topics that use the legacy name format will continue to work without any change, and there are no plans to change that.

Flexible topic naming

All topic names in Pulsar 2.0 internally have the form shown above but you can now use shorthand names in many cases (for the sake of simplicity). The flexible naming system stems from the fact that there is now a default topic type, tenant, and namespace:

Topic aspect Default
topic type persistent
tenant public
namespace default

The table below shows some example topic name translations that use implicit defaults:

Input topic name Translated topic name
my-topic persistent://public/default/my-topic
my-tenant/my-namespace/my-topic persistent://my-tenant/my-namespace/my-topic

For non-persistent topics you’ll need to continue to specify the entire topic name, as the default-based rules for persistent topic names don’t apply. Thus you cannot use a shorthand name like non-persistent://my-topic and would need to use non-persistent://public/default/my-topic instead.