Commerce Events
Inspect the commerce event log, manage the outbox for sync, and handle idempotency keys for safe retries.
How It Works
- Browse and filter the event log for any commerce entity.
- Inspect event payloads and metadata.
- Review the outbox for events pending sync.
- Manage idempotency keys to prevent duplicate operations.
- Replay or acknowledge events for debugging and recovery.
Usage
- CLI:
stateset-events list,stateset-events inspect <event_id>,stateset-events outbox. - MCP tools:
list_events,get_event,list_outbox,acknowledge_event,get_idempotency_key,create_idempotency_key. - Read-only operations do not require
--apply.
Event Fields
event_id: Unique event identifier (UUID)event_type: Operation type (e.g., order.created, inventory.adjusted)entity_type/entity_id: Affected entitypayload: Full event data (JSON)agent_signature: Ed25519 signature for authenticitycreated_at: Event timestampsequence_number: Deterministic ordering
Outbox States
- Pending: awaiting sync to sequencer
- Synced: successfully pushed to sequencer
- Failed: sync attempt failed (will retry)
- Acknowledged: confirmed by sequencer
Idempotency Keys
Prevent duplicate operations:
- Key is a unique string per operation (e.g.,
create_order_ORD-123) - If the key already exists, the original result is returned
- Keys expire after a configurable TTL
- Critical for retry safety in distributed systems
Output
{"events":[{"event_id":"evt_001","event_type":"order.created","entity_type":"order","entity_id":"ord_123","created_at":"2025-01-15T10:30:00Z"}],"total":1}
Present Results to User
- Event timeline for the requested entity.
- Event type, timestamp, and sequence number.
- Outbox status and pending event count.
- Idempotency key status and expiration.
Troubleshooting
- Event not synced: check outbox for failed events; verify sequencer connectivity.
- Duplicate operation: look up existing idempotency key for the operation.
- Missing events: verify event type filter and time range.
- Signature invalid: check Ed25519 key configuration.
References
- references/event-types.md
- /home/dom/stateset-icommerce/crates/stateset-core/src/models/events.rs
- /home/dom/stateset-icommerce/crates/stateset-db/src/migrations/026_idempotency_keys.sql
微信扫一扫