pub struct ActivityContext { /* private fields */ }Expand description
User-facing orchestration context for scheduling and replay-safe helpers. Context provided to activities for logging and metadata access.
Unlike OrchestrationContext, activities are leaf nodes that cannot schedule new work,
but they often need to emit structured logs and inspect orchestration metadata. The
ActivityContext exposes the parent orchestration information and trace helpers that log
with full correlation fields.
§Examples
let activities = ActivityRegistry::builder()
.register("ProvisionVM", |ctx: ActivityContext, config: String| async move {
ctx.trace_info(format!("Provisioning VM with config: {}", config));
// Do actual work (can use sleep, HTTP, etc.)
let vm_id = provision_vm_internal(config).await?;
ctx.trace_info(format!("VM provisioned: {}", vm_id));
Ok(vm_id)
})
.build();§Metadata Access
Activity context provides access to orchestration correlation metadata:
instance_id()- Orchestration instance identifierexecution_id()- Execution number (for ContinueAsNew scenarios)orchestration_name()- Parent orchestration nameorchestration_version()- Parent orchestration versionactivity_name()- Current activity name
§Determinism
Activity trace helpers (trace_info, trace_warn, etc.) do not participate in
deterministic replay. They emit logs directly using tracing and should only be used for
diagnostic purposes.
Implementations§
Source§impl ActivityContext
impl ActivityContext
Sourcepub fn instance_id(&self) -> &str
pub fn instance_id(&self) -> &str
Returns the orchestration instance identifier.
Sourcepub fn execution_id(&self) -> u64
pub fn execution_id(&self) -> u64
Returns the execution id within the orchestration instance.
Sourcepub fn orchestration_name(&self) -> &str
pub fn orchestration_name(&self) -> &str
Returns the parent orchestration name.
Sourcepub fn orchestration_version(&self) -> &str
pub fn orchestration_version(&self) -> &str
Returns the parent orchestration version.
Sourcepub fn activity_name(&self) -> &str
pub fn activity_name(&self) -> &str
Returns the activity name being executed.
Sourcepub fn trace_info(&self, message: impl Into<String>)
pub fn trace_info(&self, message: impl Into<String>)
Emit an INFO level trace entry associated with this activity.
Sourcepub fn trace_warn(&self, message: impl Into<String>)
pub fn trace_warn(&self, message: impl Into<String>)
Emit a WARN level trace entry associated with this activity.
Sourcepub fn trace_error(&self, message: impl Into<String>)
pub fn trace_error(&self, message: impl Into<String>)
Emit an ERROR level trace entry associated with this activity.
Sourcepub fn trace_debug(&self, message: impl Into<String>)
pub fn trace_debug(&self, message: impl Into<String>)
Emit a DEBUG level trace entry associated with this activity.
Trait Implementations§
Source§impl Clone for ActivityContext
impl Clone for ActivityContext
Source§fn clone(&self) -> ActivityContext
fn clone(&self) -> ActivityContext
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ActivityContext
impl RefUnwindSafe for ActivityContext
impl Send for ActivityContext
impl Sync for ActivityContext
impl Unpin for ActivityContext
impl UnwindSafe for ActivityContext
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)