pub struct CommandContext {
pub actor: Option<String>,
pub correlation_id: Option<String>,
pub metadata: Option<Value>,
pub source_device: Option<String>,
}Expand description
Cross-cutting metadata passed alongside a command.
Carries audit trail, correlation, and tracing information without
polluting the Command or DomainEvent types. Fields are mapped
onto eventfold::Event metadata when events are appended.
§Examples
use eventfold_es::CommandContext;
use serde_json::json;
let ctx = CommandContext::default()
.with_actor("user-42")
.with_correlation_id("req-abc-123")
.with_metadata(json!({"source": "api"}));
assert_eq!(ctx.actor.as_deref(), Some("user-42"));
assert_eq!(ctx.correlation_id.as_deref(), Some("req-abc-123"));
assert!(ctx.metadata.is_some());Fields§
§actor: Option<String>Identity of the actor issuing the command (e.g. a user ID).
correlation_id: Option<String>Correlation ID for tracing a request across aggregates.
metadata: Option<Value>Arbitrary metadata forwarded to eventfold::Event::meta.
source_device: Option<String>The device ID of the client that issued the command.
Stamped into event.meta["source_device"] by to_eventfold_event.
Skipped during serialization when None to maintain backward
compatibility with existing JSONL records.
Implementations§
Source§impl CommandContext
impl CommandContext
Sourcepub fn with_actor(self, actor: impl Into<String>) -> Self
pub fn with_actor(self, actor: impl Into<String>) -> Self
Sourcepub fn with_correlation_id(self, id: impl Into<String>) -> Self
pub fn with_correlation_id(self, id: impl Into<String>) -> Self
Sourcepub fn with_metadata(self, meta: Value) -> Self
pub fn with_metadata(self, meta: Value) -> Self
Sourcepub fn with_source_device(self, device_id: impl Into<String>) -> Self
pub fn with_source_device(self, device_id: impl Into<String>) -> Self
Set the source device ID.
The device ID identifies which client device originated this
command. It is stamped into event.meta["source_device"] by
to_eventfold_event, making it available to projections, process
managers, and downstream sync consumers.
§Arguments
device_id- Any value convertible toStringidentifying the originating device (e.g. a UUID or hostname).
§Returns
The updated CommandContext with the source device set.
Trait Implementations§
Source§impl Clone for CommandContext
impl Clone for CommandContext
Source§fn clone(&self) -> CommandContext
fn clone(&self) -> CommandContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more