Owned event types
events.iterate.com/stream/child-stream-createdRecords the immediate child stream segment under this stream.payload: { childPath }emitted by 1 · consumed by 2events.iterate.com/stream/configuredConfigures core stream runtime policy.payload: { config }consumed by 1events.iterate.com/stream/createdInitializes the core reduced state for a stream.payload: { projectId, path }consumed by 3events.iterate.com/stream/error-occurredRecords a structured stream or processor runner error.payload: { message, error? }emitted by 1 · consumed by 2events.iterate.com/stream/pausedRecords that the stream is paused and should reject ordinary appends.payload: { reason? }consumed by 1events.iterate.com/stream/processor-revivedA recovery-wired stream processor was revived after its incarnation died owing background work (in-flight obligations lost to an eviction). Appended by the platform's recovery keepalive, never emitted by a processor; the payload's processorSlug names which processor was revived (the type string is shared by every recovery-wired processor). Consumption is optional and only needed when the processor reacts to the fact itself; an unconsumed tail still receives the runner's eventless at-head turn so open obligations are not stranded.payload: { processorSlug, revivals, version }consumed by 1events.iterate.com/stream/resumedRecords that the stream has resumed accepting ordinary appends.payload: { reason? }consumed by 1events.iterate.com/stream/subscriber-connectedA delivery connection to one subscriber opened. Appended by the stream itself, once per actual open — which is why presence facts carry no idempotency keys: a re-handshake after a transient break genuinely is a new connection and must re-land on the roster. It is always the tail of any batch it shares (appended after the handshake fixes the replay offset), so state-at-event equals batch-final state.payload: { subscriptionKey, subscriptionType, subscriber? }emitted by 1 · consumed by 1events.iterate.com/stream/subscriber-disconnectedA delivery connection to one subscriber closed. Appended by the stream itself, once per actual close.payload: { subscriptionKey, reason }emitted by 1 · consumed by 1events.iterate.com/stream/subscription-configuredConfigures or replaces a durable subscription for this stream (wake or push delivery; latest event per subscriptionKey wins). Re-configuring keeps the existing delivery cursor unless `deliver` is set, and clears any parked state — new config is a fresh chance.payload: { subscriptionKey, delivery, description?, selector?, deliver?, onPoison?, includeEphem…emitted by 3 · consumed by 1events.iterate.com/stream/subscription-cursor-setOperator/agent verb: THE seek — explicitly moves a push subscription's cursor (exclusive afterOffset semantics: 0 replays everything). The audited form of replay — the cursor row itself is storage, but moving it deliberately is a fact. For a parked subscription, follow with `subscription-resumed` to restart delivery.payload: { subscriptionKey, afterOffset }consumed by 1events.iterate.com/stream/subscription-parkedDelivery for one subscription gave up after sustained failure and stopped. Appended by the stream's own delivery spine, idempotent per (subscriptionKey, atOffset). Parked is a fact, loud by design; resume it explicitly with subscription-resumed.payload: { subscriptionKey, atOffset, attempts, error? }emitted by 1 · consumed by 1events.iterate.com/stream/subscription-removedRemoves a durable subscription. Deleting the config is revocation: the stream is the only holder of the delivery machinery, and its cursor row is dropped with it.payload: { subscriptionKey }consumed by 1events.iterate.com/stream/subscription-resumedOperator/agent verb: un-parks a subscription and kicks delivery, resuming at the cursor where it stopped. Moving the cursor is a different act with its own fact — append `subscription-cursor-set` first for a redrive (skip past a bad offset, replay a window).payload: { subscriptionKey }consumed by 1events.iterate.com/stream/wokenRecords that a Durable Object incarnation has started running this stream.payload: { incarnationId }consumed by 1
Consumes
Consumes * — every event on the stream reaches this processor's reducer, with these types named explicitly:
events.iterate.com/stream/createdInitializes the core reduced state for a stream.events.iterate.com/stream/wokenRecords that a Durable Object incarnation has started running this stream.events.iterate.com/stream/configuredConfigures core stream runtime policy.events.iterate.com/stream/child-stream-createdRecords the immediate child stream segment under this stream.events.iterate.com/stream/subscription-configuredConfigures or replaces a durable subscription for this stream (wake or push delivery; latest event per subscriptionKey wins). Re-configuring keeps the existing delivery cursor unless `deliver` is set, and clears any parked state — new config is a fresh chance.events.iterate.com/stream/subscription-removedRemoves a durable subscription. Deleting the config is revocation: the stream is the only holder of the delivery machinery, and its cursor row is dropped with it.events.iterate.com/stream/subscription-parkedDelivery for one subscription gave up after sustained failure and stopped. Appended by the stream's own delivery spine, idempotent per (subscriptionKey, atOffset). Parked is a fact, loud by design; resume it explicitly with subscription-resumed.events.iterate.com/stream/subscription-resumedOperator/agent verb: un-parks a subscription and kicks delivery, resuming at the cursor where it stopped. Moving the cursor is a different act with its own fact — append `subscription-cursor-set` first for a redrive (skip past a bad offset, replay a window).events.iterate.com/stream/subscription-cursor-setOperator/agent verb: THE seek — explicitly moves a push subscription's cursor (exclusive afterOffset semantics: 0 replays everything). The audited form of replay — the cursor row itself is storage, but moving it deliberately is a fact. For a parked subscription, follow with `subscription-resumed` to restart delivery.events.iterate.com/stream/subscriber-connectedA delivery connection to one subscriber opened. Appended by the stream itself, once per actual open — which is why presence facts carry no idempotency keys: a re-handshake after a transient break genuinely is a new connection and must re-land on the roster. It is always the tail of any batch it shares (appended after the handshake fixes the replay offset), so state-at-event equals batch-final state.events.iterate.com/stream/subscriber-disconnectedA delivery connection to one subscriber closed. Appended by the stream itself, once per actual close.events.iterate.com/stream/error-occurredRecords a structured stream or processor runner error.events.iterate.com/stream/pausedRecords that the stream is paused and should reject ordinary appends.events.iterate.com/stream/resumedRecords that the stream has resumed accepting ordinary appends.
Emits
events.iterate.com/stream/subscriber-connectedA delivery connection to one subscriber opened. Appended by the stream itself, once per actual open — which is why presence facts carry no idempotency keys: a re-handshake after a transient break genuinely is a new connection and must re-land on the roster. It is always the tail of any batch it shares (appended after the handshake fixes the replay offset), so state-at-event equals batch-final state.events.iterate.com/stream/subscriber-disconnectedA delivery connection to one subscriber closed. Appended by the stream itself, once per actual close.events.iterate.com/stream/subscription-parkedDelivery for one subscription gave up after sustained failure and stopped. Appended by the stream's own delivery spine, idempotent per (subscriptionKey, atOffset). Parked is a fact, loud by design; resume it explicitly with subscription-resumed.events.iterate.com/stream/child-stream-createdRecords the immediate child stream segment under this stream.