← Zurück zum Katalog

Skill · Version 1.0.0

Dauerhafte Wartezustände

Erhält auf Fristen oder externe Ereignisse wartende Abläufe über Neustarts und doppelte Aufwecksignale hinweg.

durable-waits-event-correlation

Entdecke, wie der Skill hilft

Wann ist der Skill hilfreich?

Nutze dies für Jobs, die auf Freigaben, Rückmeldungen oder Termine warten.

Wobei hilft er dir?

  • Speichert Wartezustände vor Freigabe des ausführenden Workers.
  • Ordnet Ereignisse dem richtigen Ablauf zu und behandelt frühe Eingänge.
  • Dedupliziert Timer- und Ereignissignale für genau eine Fortsetzung.

Das könntest du fragen

Modelliere Freigabe gleichzeitig mit Fristablauf und einmalige Fortsetzung nach Neustart. Liefere Freigabe und Timeout gleichzeitig und starte den Worker neu. Speichere einen gültigen Übergang; das andere Signal bleibt wirkungslos, aber nachvollziehbar.

Ausführliche Dokumentation

Hier findest du die ursprüngliche Anleitung, Beispiele und Prüfschritte des Skills in ihrer Originalsprache.

Details…Weniger anzeigen

Durable Waits & Event Correlation

Use this skill when implementing workflow delays, scheduled wakeups, webhook/event listeners, timeout races, and crash-safe resumption.

Never Hold Long Waits in Volatile Process Memory (Kleppmann)

  1. Persist Wait State Before Releasing the Worker:
    • Never implement a workflow delay or external event wait with setTimeout or an in-memory promise that vanishes on process restart or deploy.
    • Persist a durable wait record (runId, stepExecutionId, waitType, wakeAt, correlationKey, timeoutAt, state: 'waiting'), commit the step checkpoint, and release the worker thread.
  2. Idempotent Timer & Event Wakeup:
    • When the scheduler or event router fires at t >= wakeAt (or an incoming event matches correlationKey), claim the transition atomically (UPDATE ... WHERE state = 'waiting') so concurrent workers or duplicate scheduler ticks wake the step at most once.
    • On wakeup, resume execution from the persisted step checkpoint without re-executing already completed upstream steps.

Event Correlation, Buffering & Deduplication

  • Explicit Correlation Keys & Tenant Scoping:
    • Match incoming events/webhooks to waiting steps using a composite scope: (tenantId, eventType, correlationKey) (e.g., orderId, paymentIntentId, ticketId). Never allow an event from tenant $A$ to wake a waiting run in tenant $B$.
  • Deduplicate Repeated Events:
    • Record processed eventId / delivery keys so webhook retries do not trigger duplicate resumptions.
  • Early / Out-of-Order Event Arrival Race Protection:
    • An external webhook (e.g., payment confirmation) can arrive milliseconds before the workflow step finishes persisting its waiting subscription.
    • Buffer recent correlated events in an inbox table or check the event log transactionally when registering the wait so early arrivals are matched immediately instead of hanging until timeout.
  • Bounded Event Waits:
    • Every WaitForEvent step must support an explicit timeoutAt deadline routing to a timeout port or failure handler so runs cannot remain orphaned forever.

Checklist

  • Are all workflow delays and event waits persisted in durable storage rather than held in worker memory?
  • Is the transition from waiting to running claimed atomically so duplicate ticks or webhooks cannot double-resume a run?
  • Are correlation keys strictly scoped by tenantId and protected against early/out-of-order webhook arrivals?
  • Does every external event wait define an explicit timeout deadline and timeout outcome path?

Enthaltene Dateien 1

  • SKILL.md

Über dieses Skill-Paket

durable-waits-event-correlation

durable-waits-event-correlation: Entwickelt Workflow-Editoren und Ausführungsmodelle für konsistente Verzweigungen, Freigaben, Wartezustände, Wiederholungen und versionierte Änderungen.

Details…Weniger anzeigen

durable-waits-event-correlation

durable-waits-event-correlation: Entwickelt Workflow-Editoren und Ausführungsmodelle für konsistente Verzweigungen, Freigaben, Wartezustände, Wiederholungen und versionierte Änderungen.

Enthält den vollständigen Skill und seine Begleitdateien (1 Dateien). Der genaue, ursprünglich verfasste Anwendungsbereich bleibt unten erhalten.

Ursprüngliche Skill-Beschreibung (Quellsprache)

Use when designing crash-resilient workflow timers, webhook/event waits, correlation keys, out-of-order event buffering, and checkpointed resumption without in-memory sleeps.

Installiere den Skill, prüfe seine Quelle und Vertrauenseinstellungen und aktiviere ihn für das passende Projekt oder den Agenten.

Voraussetzungen

  • Orqestria auf deinem Computer installiert.