Skip to content

Event streams

Event streams record every completed Action as an immutable Event and deliver it, in order, to subscribers, Watches and replays.

Event streams record every completed Action as an immutable Event and deliver it, in order, to Triggers, Watches, live readers and replays.

Contract

  • Every change of an Action's status appends one Event, named in the past tense: Order.refunded, Lesson.booked.
  • Events are ordered per namespace by sequence number and kept forever.
  • One selector grammar matches Events everywhere: Triggers, Watches, Meters, Task completion rules and control tests.
  • A Trigger wakes a Workflow on a match. A Watch delivers each match to a URL, signed, retried and replayable from any point.
  • Only declared Event names feed Metrics. Undeclared names stay raw telemetry.
  • Telemetry may be sampled. A billed Event never is.
  • Outside events enter through one verified webhook door and are written as Events before any Workflow acts on them.

Verbs

Interfaces

Example

TypeScript
import { $ } from 'startup-builder'

// A course platform sends completions to a partner's learning system, then replays a missed week.
const { watch, secret } = await $.Watch.create({
  selector: 'Enrollment.completed where course = course_sql',
  url: 'https://lms.partner.example/hooks/completions',
})
// The secret is shown once: hand it to the receiver now.
await $.Watch.replay({ watch: watch.$id, from: '2026-10-01' })