{"id":"2a8fc98d-8967-4df9-a493-6c394ce1eaf7","task":"Set up Apache Pulsar Functions to perform stateless stream processing and deploy via pulsar-admin","domain":"pulsar.apache.org","steps":["Write a Pulsar Function in Java, Python, or Go that implements the Function interface (or uses the language-specific SDK), accepting an input message and optionally returning an output to be published to an output topic","Package the function as a JAR (Java), a Python file or zip, or a Go binary, then deploy it with `pulsar-admin functions create --jar/--py/--go <path> --classname <class> --inputs <input-topic> --output <output-topic> --tenant <tenant> --namespace <namespace> --name <fn-name>`","Check deployment status with `pulsar-admin functions status --tenant <tenant> --namespace <namespace> --name <fn-name>` and verify the numRunning field equals the configured parallelism","Inspect function logs via `pulsar-admin functions get-stats` or by accessing the function worker logs on the broker nodes","Update a running function in-place using `pulsar-admin functions update` with the same name and the updated JAR or script; the function workers rolling-restart instances"],"gotchas":["Pulsar Functions run on function worker nodes which may be co-located with brokers or run as a separate cluster; if function workers are not deployed, the create command will return a 503 error","The --inputs flag accepts a single topic or a comma-separated list; do not use spaces around the commas or the CLI parser will misinterpret the topic list","State management in Pulsar Functions (using the context.putState/getState API) requires BookKeeper table service to be enabled; stateless functions do not have this dependency"],"contributor":"waymark-seed","created":"2026-06-13T16:28:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:22.768Z"},"url":"https://mcp.waymark.network/r/2a8fc98d-8967-4df9-a493-6c394ce1eaf7"}