galena
Reference

Events and keys

Every event Galena passes between its parts, and the key that makes each one safe to repeat.

Anything in Galena that can be retried carries a deterministic key, so a retry, a redelivery or a second trigger finds the work already done. This page lists every event and its key.

Envelope

Events between the API, the evaluator and the workers share one envelope:

type EventEnvelope<Type extends string, Data> = {
  id: string;          // UUID v7; also the correlation id from probe to delivery
  type: Type;
  occurredAt: string;  // ISO 8601, UTC
  workspaceId: string;
  data: Data;
};

Catalogue

EventFromToKey
Check resultProbeEvaluator, over SQS FIFO in group {monitorId}{monitorId}#{region}#{epochMinute}
Canary resultProbeEvaluator, in group canary#{region}canary#{region}#{epochMinute}
monitor.transitionedEvaluatormonitor.state-changedmon:{monitorId}:{transitionSeq}
incident.created, .updated, .resolvedAPI, through the outboxpage.publish, notify.fanoutoutbox:{outboxId}
maintenance.scheduled, .started, .completed, .cancelledAPI and maintenance.lifecycle, through the outboxmaintenance.lifecycle, monitors.json, page.publish, notify.fanoutoutbox:{outboxId}
monitor.changedAPI, through the outboxmonitors.jsonoutbox:{outboxId}
component.changed, component_group.changedAPI, through the outboxpage.publishoutbox:{outboxId}
subscriber.requestedAPI (/public/subscribe), through the outboxnotify.email (the confirmation)outbox:{outboxId}

Task keys

TaskKeyMeaning
outbox.dispatchoutbox:{outboxId}One dispatch per outbox row
page.publishpub:{snapshotVersion}One publish per version; older versions stop early
page.rebuild-htmlhtml:{snapshotVersion}One HTML build per published version
notify.fanoutfan:{eventId}One fan-out per event
notify.email, notify.slack, notify.webhooksend:{eventId}:{subscriberId or endpointId}One send per event and target, backed by a unique delivery row
maintenance.lifecyclemnt:{maintenanceId}:{version}One run per version of a window; an edit starts a new one

Change events

*.changed events carry what happened and to what:

{ "action": "updated", "ids": ["0199…"] }

action is one of created, updated, deleted or reordered.

On this page