Skip to main content

duckstring trigger

Commands that create demand on a Pond. See Orchestration for how each trigger behaves. Triggers are meant to be placed on Outlets, though any deployed Pond accepts them.

Every command takes -c / --catchment, -m / --major and -v / --version; see CLI Overview. A Pond holds at most one standing trigger: setting a Wave or Tide replaces the existing one.

tap​

duckstring trigger tap POND [--silent] [--watch]

Asks the Pond to run once with fresher data than it has. If its Sources have nothing newer, the request passes upstream until it reaches Ponds that can run. Opens the live status view until the Pond settles.

wave​

duckstring trigger wave POND [--silent]

A standing Tap: repeats whenever the Pond finishes a run, so the pipeline runs as often as its slowest step allows. Stays in place until removed.

pulse​

duckstring trigger pulse POND [--silent] [--watch]

Asks for data at least as fresh as the moment the command runs. Every Pond upstream that is older runs, and the result flows down to POND. Opens the live status view until the Pond settles.

tide​

duckstring trigger tide POND BOUND [--silent]

A standing Pulse that keeps POND no older than BOUND. In effect it runs the pipeline every BOUND: duckstring trigger tide reports 1d refreshes reports daily. Precisely, it sends a Pulse whenever the data would otherwise become older than BOUND. If the pipeline takes longer than BOUND, it runs back to back without piling up requests.

ArgumentDescription
BOUNDA duration, such as 30s, 12h, 1d or 1h30m.

remove​

duckstring trigger remove POND

Removes the Pond's standing Wave or Tide. Runs already in progress finish.

window​

duckstring trigger window POND add --name NAME --every INTERVAL [options]
duckstring trigger window POND list
duckstring trigger window POND remove NAME

Windows declare when an Inlet can produce new data. The Pond runs at most once per window, never between windows, and its data counts as fresh until the window ends. See Windows.

Windows are Catchment configuration and survive redeploys. A window can also be set on a Spout, as {pond}#{spout}, to limit how often it delivers.

add options​

OptionDefaultDescription
--name, -nrequiredA name for the window, unique on this Pond.
--every, -erequiredHow often windows open, as a single-unit duration such as 1d, 12h or 10s.
--start, -s00:00 today (UTC)When the first window opens: ISO 8601, or HH:MM for today in UTC.
--duration, -d--everyHow long each window stays open. Omitting it gives back-to-back windows.
--on, -oevery dayOnly open on these weekdays, such as MON,WED,FRI.
--until, -unoneWhen the windows stop, in ISO 8601.

Windows on one Pond can't overlap; an overlapping window is rejected.

# A nightly export that lands between 02:00 and 03:00 UTC
duckstring trigger window transactions add --name nightly --every 1d --start 02:00 --duration 1h