ScyllaDB Trigger

ScyllaDB Trigger

Certified

Poll ScyllaDB and acknowledge returned rows

Starts an execution when a SELECT returns rows, after applying acknowledgeCql to each emitted row. Acknowledgement happens before flow processing and is not atomic with execution delivery. Partial failures can lose events and concurrent consumers can duplicate them; neither exactly-once nor guaranteed at-least-once delivery is provided. Use idempotent acknowledgements and a single consumer.

yaml
type: io.kestra.plugin.scylladb.Trigger

Consume pending events

yaml
id: scylladb_pending_events
namespace: company.team
triggers:
  - id: events
    type: io.kestra.plugin.scylladb.Trigger
    interval: PT1M
    connection:
      contactPoints:
        - "{{ secret('SCYLLADB_HOST') }}:9042"
      localDatacenter: datacenter1
      keyspace: events
      username: "{{ secret('SCYLLADB_USERNAME') }}"
      password: "{{ secret('SCYLLADB_PASSWORD') }}"
    # Requires pending_events(event_id uuid PRIMARY KEY, event_type text, payload text).
    cql: SELECT event_id, event_type, payload FROM pending_events LIMIT 100
    acknowledgeCql: DELETE FROM pending_events WHERE event_id = :event_id
    fetchType: FETCH
tasks:
  - id: handle_events
    type: io.kestra.plugin.core.log.Log
    message: "Processing {{ trigger.size }} events: {{ trigger.rows }}"
Properties

Per-row acknowledgement CQL

An idempotent UPDATE or DELETE targeting the returned row's complete primary key. Named markers bind to selected column names, for example DELETE FROM pending_events WHERE event_id = : event_id. Do not use anonymous markers, counters, or broad updates. The mutation must remove the row from the SELECT's future results. Values are bound, not interpolated into CQL.

Definitions

Native CQL connection settings rendered at task execution.

contactPoints*array
SubTypestring

Contact points

Non-empty list of hosts, host: port, or [IPv6]: port addresses. The default port is 9042.

localDatacenter*string

Local datacenter

Datacenter used by the driver's load balancing policy, for example datacenter1.

keyspacestring

Keyspace

Optional default keyspace. Omit when creating a keyspace with DDL.

keystorePasswordstring
Formatpassword

Client keystore password

Optional client keystore password. Requires keystorePath. Use a Kestra secret expression.

keystorePathstring

Client keystore path

Optional JKS client keystore path on the worker filesystem for mutual TLS. Requires TLS.

passwordstring
Formatpassword

Password

Native CQL authentication password. Use a Kestra secret expression.

requestTimeoutstring

Request timeout

Optional strictly positive CQL request timeout as an ISO-8601 duration, for example PT30S. Otherwise the driver default applies.

tlsEnabledbooleanstring
Defaultfalse

Enable TLS

Enable certificate and hostname verification. Uses JVM trust roots unless a truststore is supplied.

truststorePasswordstring
Formatpassword

Truststore password

Optional truststore password. Requires truststorePath. Use a Kestra secret expression.

truststorePathstring

Truststore path

Optional JKS truststore path on the worker filesystem. Requires TLS.

usernamestring

Username

Native CQL authentication username. Set together with password; secret expressions are supported.

SELECT statement

Select pending rows and every primary-key column needed by acknowledgeCql. Use LIMIT to bound each poll.

Defaultfalse

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

Driver page size

Optional positive page-size hint, not a total result limit.

DefaultFETCH
Possible Values
STOREFETCHFETCH_ONENONE

Fetch mode

FETCH, FETCH_ONE, or STORE. Only emitted rows are acknowledged.

DefaultPT1M
Formatduration

Polling interval

Time between polls as an ISO-8601 duration.

SubTypestring
Possible Values
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTED

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

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.

First fetched row

Populated for FETCH_ONE; null when the result is empty.

SubTypeobject

All fetched rows

Populated for FETCH in result order, including all pages.

Number of emitted rows

Zero or one for FETCH_ONE, or the total row count for FETCH and STORE.

Formaturi

Stored result URI

Internal storage URI of the Ion file, populated for STORE.