Add wrapper struct to durable events and store trace context #65
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This should result in Sentry displaying a link from the task execution trace (where 'await_event' is called) back to the trace that performed the 'emit_event' call
Note that this is a breaking change, as we now wrap the user's payload in a struct when reading/writing to the database. Going forward, we'll be able to add new (optional) fields to this wrapper struct without breaking existing durable deployments
Note
Introduces a structured event payload wrapper to support metadata (e.g., trace context) and links between traces.
DurableEventPayload { inner, metadata }; updatesawait_event/jointo parse wrapper and returninner, and to link telemetry spans frommetadataemit_eventnow wraps user payload, injects trace context intometadata, and sends wrapper to SQLemit_eventvalidates payload keys (onlyinner,metadata);cleanup_task_terminalemits child completion events wrapped in the new formatAwaitEventResult.payloadis nowOption<DurableEventPayload>; re-exports includeDurableEventPayloadEmitEventFailedvariant for context-level emission failuresBreaking change: event payloads in
e_*and checkpoints are now the wrapper object rather than raw JSON.Written by Cursor Bugbot for commit ec45961. This will update automatically on new commits. Configure here.