Register each cluster in the global metadata store: bin/pulsar-admin clusters create us-east --url http://broker-us-east:8080 --broker-url pulsar://broker-us-east:6650
Create a tenant that is allowed to use both clusters: bin/pulsar-admin tenants create my-tenant --allowed-clusters us-east,eu-west
Create or update the namespace with geo-replication enabled: bin/pulsar-admin namespaces set-clusters my-tenant/my-namespace --clusters us-east,eu-west
Verify replication by producing to a topic on us-east and consuming on eu-west; the replication cursor (a managed cursor named 'pulsar.repl.eu-west') tracks replication progress
Monitor replication lag: bin/pulsar-admin topics stats persistent://my-tenant/my-namespace/orders and check the replicationBacklog field per connected cluster
To exclude specific topics from replication set the namespace replication policy at topic level: bin/pulsar-admin topics set-replication-clusters --clusters us-east persistent://my-tenant/my-namespace/local-only-topic
Known gotchas
Geo-replication requires a shared global metadata store (ZooKeeper or etcd) accessible from all clusters; without a common metadata store, clusters cannot discover each other's replication configurations
Replication uses a system producer per topic per target cluster; if the target cluster is unreachable, messages accumulate in the replication backlog indefinitely — set a backlog quota on the namespace to prevent unbounded growth
Deduplication is not automatically applied on the receiving cluster; if a consumer processes a message and the source cluster retries replication, the consumer may see duplicates unless it implements idempotent processing
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp