
ScyllaDB Trigger
CertifiedPoll ScyllaDB and acknowledge returned rows
ScyllaDB Trigger
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.
type: io.kestra.plugin.scylladb.TriggerExamples
Consume pending events
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
acknowledgeCql *string
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.
connection *
ScyllaDB connection
Native CQL connection settings rendered at task execution.
Contact points
Non-empty list of hosts, host: port, or [IPv6]: port addresses. The default port is 9042.
Local datacenter
Datacenter used by the driver's load balancing policy, for example datacenter1.
Keyspace
Optional default keyspace. Omit when creating a keyspace with DDL.
passwordClient keystore password
Optional client keystore password. Requires keystorePath. Use a Kestra secret expression.
Client keystore path
Optional JKS client keystore path on the worker filesystem for mutual TLS. Requires TLS.
passwordPassword
Native CQL authentication password. Use a Kestra secret expression.
Request timeout
Optional strictly positive CQL request timeout as an ISO-8601 duration, for example PT30S. Otherwise the driver default applies.
falseEnable TLS
Enable certificate and hostname verification. Uses JVM trust roots unless a truststore is supplied.
passwordTruststore password
Optional truststore password. Requires truststorePath. Use a Kestra secret expression.
Truststore path
Optional JKS truststore path on the worker filesystem. Requires TLS.
Username
Native CQL authentication username. Set together with password; secret expressions are supported.
cql *string
SELECT statement
Select pending rows and every primary-key column needed by acknowledgeCql. Use LIMIT to bound each poll.
allowConcurrent boolean
falseSpecifies whether a trigger is allowed to start a new execution even if a previous run is still in progress.
fetchSize integerstring
Driver page size
Optional positive page-size hint, not a total result limit.
fetchType string
FETCHSTOREFETCHFETCH_ONENONEFetch mode
FETCH, FETCH_ONE, or STORE. Only emitted rows are acknowledged.
interval string
PT1MdurationPolling interval
Time between polls as an ISO-8601 duration.
stopAfter array
CREATEDSUBMITTEDRUNNINGPAUSEDRESTARTEDKILLINGSUCCESSWARNINGFAILEDKILLEDCANCELLEDQUEUEDRETRYINGRETRIEDSKIPPEDBREAKPOINTRESUBMITTEDList of execution states after which a trigger should be stopped (a.k.a. disabled).
when string
trueA 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.
Outputs
row object
First fetched row
Populated for FETCH_ONE; null when the result is empty.
rows array
All fetched rows
Populated for FETCH in result order, including all pages.
size integer
Number of emitted rows
Zero or one for FETCH_ONE, or the total row count for FETCH and STORE.
uri string
uriStored result URI
Internal storage URI of the Ion file, populated for STORE.