Release v22.14.0
Summary
Keep command decisions focused on what should happen by returning command operations. Arc executes the declared work and manages optional compensation without application-written rollback stacks, while protecting already-committed and uncertain business outcomes.
This is a backend-only addition: HTTP and TypeScript command-result contracts remain unchanged. Initial support covers flat, sequential commands; compensation is best-effort and in-process, not a durable workflow.
Added
ICommandOperationwith dependency-injectedExecute()and optionalCompensate(), plus immutableCommandOperationsfor ordered zero-to-many work.- Automatic failure handling, reverse-order compensation, independent cleanup cancellation, and backend recovery observations for compatible command boundaries, including Chronicle's deferred event commit.
- Compiler diagnostics and generated invocation support for operation declarations, with operations excluded from generated client responses.
CommandScenariocancellation support and assertions over real operation execution and compensation.- Dedicated usage, migration, troubleshooting, and testing guides, with runnable examples for partial failure, cancellation, and Chronicle commit rejection.
- Contextual recommendations throughout Arc's existing command, tutorial, validation, and storage guidance, preserving supported direct calls and durable reactor/workflow boundaries.