SAService Architect Back to designer
SAService ArchitectDocumentation
Scheduling guide ScheduleTrigger

ScheduleTrigger contract

Portable invocation metadata delivered to Cron and Temporal schedule callbacks.

When to use

Use this page while designing, implementing, operating, or troubleshooting scheduled and durable execution.

Behavior

  • scheduledAt is the logical occurrence; firedAt is actual dispatch time.
  • backend is local for Cron and temporal for a Temporal Schedule.
  • triggerId is deterministic across retries for the same endpoint, schedule, and occurrence.
  • The ID is SHA-256 over a versioned identity, endpoint ID, schedule ID, and UTC RFC3339-nanosecond occurrence.

Idempotency and business time

  • Persist triggerId with external side effects when duplicate suppression matters.
  • Use scheduledAt for selecting a business period.
  • Use firedAt for lateness telemetry.
  • Do not derive idempotency from firedAt.

Trigger properties

Names follow each target language convention.

PropertyTypeDescription
triggerId / trigger_idstring

Stable idempotency key.

Required
scheduleId / schedule_idstring

Configured durable ID or local schedule identity.

Required
scheduledAt / scheduled_atUTC timestamp

Logical scheduler time.

Required
firedAt / fired_atUTC timestamp

Actual dispatch time.

Required
backendenum

Producing scheduler.

RequiredAllowed: local, temporal

Product-level example

{ triggerId: "<stable_sha256>", scheduleId: "daily-rollup", scheduledAt: "<utc>", firedAt: "<utc>", backend: "temporal" }