Apache Pulsar Trigger

Apache Pulsar Trigger

Certified

Trigger a flow by polling Pulsar messages

Periodically consumes from topics, stores the batch in Kestra storage, and exposes it via {{ trigger.uri }}. Use RealtimeTrigger for one execution per message.

yaml
type: io.kestra.plugin.pulsar.Trigger
yaml
id: pulsar_trigger
namespace: company.team

tasks:
  - id: log
    type: io.kestra.plugin.core.log.Log
    message: "{{ trigger.value }}"

triggers:
  - id: trigger
    type: io.kestra.plugin.pulsar.Trigger
    interval: PT30S
    topic: kestra_trigger
    uri: pulsar://localhost:26650
    deserializer: JSON
    subscriptionName: kestra_trigger_sub
Properties
DefaultSTRING
Possible Values
STRINGJSONBYTES

Value deserializer

Subscription name

Identifies the subscription so only unconsumed records for that subscription are fetched.

Source topic(s)

Single topic or list of topics to consume.

Pulsar service URL

One or more Pulsar protocol URLs, e.g. pulsar://localhost: 6650 or pulsar://host1: 6650,host2: 6651. Use pulsar+ssl:// when enabling TLS.

Defaultfalse

Specifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.

Authentication token

Token used when the broker requires token-based auth (e.g., hosted providers).

Consumer name

Optional name reused on reconnects; helps coordinate with broker policies.

SubTypestring

Consumer properties

Key/value properties applied to the Pulsar consumer builder.

Public encryption key

Key used for payload encryption/decryption when the topic is secured.

DefaultEarliest
Possible Values
LatestEarliest

Initial subscription position

Where to start consuming (default Earliest).

DefaultPT1M
Formatduration

Interval between polling.

The interval between 2 different polls of schedule, this can avoid to overload the remote system with too many calls. For most of the triggers that depend on external systems, a minimal interval must be at least PT30S. See ISO_8601 Durations for more information of available interval values.

Maximum read duration

Soft timeout evaluated each second; stops when exceeded.

Maximum records before stop

Soft limit evaluated each second; stops after this many messages if set.

DefaultPT2S

Poll wait duration

Maximum time to wait for a new record when none are immediately available.

Topic schema definition

JSON schema used when schema enforcement is enabled.

DefaultNONE
Possible Values
NONEAVROJSON

Topic schema type

One of NONE (default), AVRO, or JSON.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

List of execution states after which a trigger should be stopped (a.k.a. disabled).

DefaultExclusive
Possible Values
ExclusiveSharedFailoverKey_Shared

Subscription type

Delivery semantics such as Exclusive (default), Shared, or Failover.

TLS options

Certificate/key material for TLS client authentication. Requires a pulsar+ssl:// URL.

Definitions
castring

CA certificate

Base64-encoded PEM of the trusted CA chain.

certstring

Client certificate

Base64-encoded PEM content for the client certificate.

keystring

Client key

Base64-encoded PEM private key matching the client certificate.

Defaulttrue

A condition that determines whether the trigger should run.

A Pebble expression evaluated at trigger time. The trigger fires only when the expression evaluates to a truthy value (true, a non-empty string, a non-zero number). Use this to gate trigger execution on dynamic runtime values such as execution labels, flow variables, or environment conditions.

Number of messages consumed

Formaturi

URI of Kestra storage file with consumed messages