Pulsar

Infinitic is still in active development. Subscribe here to follow the progress.

Pulsar Installation

To install Pulsar, please see the prerequisistes or refer to the Pulsar documentation.

Pulsar Setup

Before using Infinitic on our Pulsar cluster we need to create a dedicated tenant and configure the namespaces we want to use.

Namespaces are useful to isolate messages and avoid mixing things up. For example, we may want to create one namespace per developer, plus one for staging and one for production.

To create a "infinitic" Pulsar tenant with a "dev" Pulsar namespace, just do

admin.setupPulsar();
admin.setupPulsar()

where admin is an io.infinitic.pulsar.PulsarInfiniticAdmin instance:

PulsarInfiniticAdmin admin = PulsarInfiniticAdmin.fromConfigFile("infinitic.yml");
val admin = PulsarInfiniticAdmin.fromConfigFile("configs/infinitic.yml")

Here is an example of a valid infinitic.yml file:

pulsar:
  serviceUrl: pulsar://localhost:6650
  serviceHttpUrl: http://localhost:8080
  tenant: infinitic
  namespace: dev

If we want to use a custom PulsarAdmin instance, we can instantiate an PulsarInfiniticAdmin instance through:

PulsarInfiniticAdmin admin = PulsarInfiniticAdmin(pulsarAdmin, "infinitic", "dev");
val admin = PulsarInfiniticAdmin(pulsarAdmin, "infinitic", "dev")

The setupPulsar() method creates the namespaces with some options useful for Infinitic such as deduplication enabled, partitioned topics, schema enforced and retention policies.

We recommend using Pulsar Manager if you want more control over namespace settings.

Edit this page on GitHub Updated at Fri, May 28, 2021