Store trace context in emit_event, and link it in 'await_event' #63
+75
−26
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 trace-aware event payloads and links traces across emit/await.
EventPayloadWrapperand wraps all event payloads inclient.emit_event[_with], injectingtrace_contextwhen telemetry is enabled; DB now stores the wrapper instead of raw payload (breaking change)TaskContext.await_eventto decode the wrapper and (telemetry) add a span link to the emitter trace; caches the wrapped JSONTaskContext.emit_eventto delegate to client and addsTaskError::EmitEventFailed(with serialization for persistence)Written by Cursor Bugbot for commit 04cf09d. This will update automatically on new commits. Configure here.