Apache Pulsar — a cloud-native distributed messaging and streaming platform (pub/sub + queuing) with multi-tenancy, geo-replication and tiered storage. Deployed as a single host-networked Nomad service (standalone: broker + BookKeeper + metadata in one container).
Needs nomad-pack on PATH. The script only adds the nomploy registry and runs this pack.
Source ↗ Project ↗ ★ 15.3k ⚑ Report an issue
Save as values.hcl, edit, then run:
# The name of the Nomad job.
job_name = "pulsar"
# The Nomad namespace to deploy into.
namespace = "default"
# The datacenters to deploy to.
datacenters = ["*"]
# The Apache Pulsar container image. Pin a tag in production.
image = "apachepulsar/pulsar:latest"
# Host port for the Pulsar binary protocol (pulsar://).
broker_port = 6650
# Host port for the admin / REST HTTP service.
http_port = 8080
# JVM memory flags for the standalone process. Raise for real workloads.
pulsar_mem = "-Xms1g -Xmx1g -XX:MaxDirectMemorySize=512m"
# Named volume for Pulsar data (BookKeeper + metadata) (/pulsar/data).
data_volume = "pulsar_data"
# Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []
# The task resources.
resources = {
cpu = 1500
memory = 2560
}
| Name | Type | Default | Description |
|---|---|---|---|
| job_name | string | "pulsar" | The name of the Nomad job. |
| namespace | string | "default" | The Nomad namespace to deploy into. |
| datacenters | list | ["*"] | The datacenters to deploy to. |
| image | string | "apachepulsar/pulsar:latest" | The Apache Pulsar container image. Pin a tag in production. |
| broker_port | number | 6650 | Host port for the Pulsar binary protocol (pulsar://). |
| http_port | number | 8080 | Host port for the admin / REST HTTP service. |
| pulsar_mem | string | "-Xms1g -Xmx1g -XX:MaxDirectMemorySize=512m" | JVM memory flags for the standalone process. Raise for real workloads. |
| data_volume | string | "pulsar_data" | Named volume for Pulsar data (BookKeeper + metadata) (/pulsar/data). |
| constraints | list | [] | Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true". |
| resources | object | {
cpu = 1500
memory = 2560
} | The task resources. |
No variables match.
Apache Pulsar is a cloud-native, distributed messaging and streaming platform. It unifies pub/sub and queuing, with multi-tenancy, geo-replication, tiered storage, per-message acknowledgement and Pulsar Functions — a powerful alternative to Kafka or RabbitMQ for event-driven systems.
This pack runs Pulsar in standalone mode (broker + BookKeeper + metadata in one container) as a single host-networked Nomad service — ideal for a single node.
nomad-pack run pulsar --registry=nomploy
Clients connect to pulsar://<node-ip>:6650; the admin/REST API is on
http://<node-ip>:8080.
| Variable | Default | Description |
|---|---|---|
image |
apachepulsar/pulsar:latest |
Container image (pin a tag in production). |
broker_port |
6650 |
Binary protocol (pulsar://). |
http_port |
8080 |
Admin / REST HTTP service. |
pulsar_mem |
-Xms1g -Xmx1g -XX:MaxDirectMemorySize=512m |
JVM memory flags — raise for load. |
data_volume |
pulsar_data |
Volume for BookKeeper + metadata (/pulsar/data). |
resources |
1500 MHz / 2560 MB | CPU and memory for the task. |
Standalone mode suits a single node. Data persists in
data_volume. For a production cluster, deploy ZooKeeper/metadata, BookKeeper and brokers as separate jobs, and keeppulsar_memwithin the task's memory limit.