Scheduling guide
Input source | Sink submissionTemporal Input and Sink — Scheduling & Temporal
How durable executions enter the graph and graph values start durable work.
When to use
Use this page while designing, implementing, operating, or troubleshooting scheduled and durable execution.
Behavior
- Input handlers collect worker values into an Input stream.
- Sinks derive a message ID, submit durable execution, and optionally wait for a result.
- Execution IDs derive deterministically from endpoint and message identity; duplicate starts reuse an owned execution after memo validation.
Sink submission flow
GraphSink valueMessage reaches a Temporal Sink.
IdentityMessage IDDerive stable execution identity.
TemporalStart or reuseValidate ownership and submit.
CompletionAccept or wait
waitForResult chooses boundary.Contracts properties
User-facing handler shape.
PropertyTypeDescription
Go InputTemporal source handlerBeginRequest, ConsumeMessage, EndRequest; consume uses StreamContext collection.
Go SinkTemporal sink handlerGetMessageID, BeginRequest, EndRequest; framework owns submission.
Python InputTemporal source handlerbegin_request, consume_message, end_request.
Python Sinkdirect framework sinkGenerated maker binds framework-owned submission behavior.
TypeScript InputTemporalEndpointHandlerbeginRequest, consumeMessage, endRequest.
TypeScript SinkTemporalEndpointHandlerbeginRequest, getMessageId, endRequest.
Product-level example
Sink<T> -> getMessageId(value) -> execution ID -> Activity or Workflow