Namespace Cratis.Arc.Commands

Classes

AmbiguousReadModelLookup

The exception that is thrown when several command properties match a read model's key type.

CannotResolveCommandDependency

Exception thrown when a non-nullable command method dependency cannot be resolved or resolves to null.

CommandActionFilter

Represents a IAsyncActionFilter for providing a proper CommandResult<TResponse> for post actions.

CommandCannotBeBothProtectedAndUnprotected

The exception that is thrown when a command declares both the protected and the unprotected decision profile.

CommandContext

Represents the context for a command being executed.

CommandContextExtensions

Provides provider-neutral extension methods for the CommandContext.

CommandContextIsNotAvailable

Exception that is thrown when no command context is available in the current scope.

CommandContextKeys

Provider-neutral keys for values held on a CommandContext.

CommandContextManager

Manages the current CommandContext in an async local manner.

CommandContextValues

Represents a set of values associated with a CommandContext.

CommandContextValuesBuilder

Represents an implementation of ICommandContextValuesBuilder.

CommandDecisionPolicy

The immutable protection profile of the current command invocation.

CommandEndpointMapper

Maps command endpoints using the provided endpoint mapper.

CommandFilters

Represents an instance of ICommandFilters.

CommandHandlerArgumentResolution

Represents the outcome of resolving the arguments for a command handler.

CommandHandlerArgumentResolver

Represents an implementation of ICommandHandlerArgumentResolver.

CommandHandlerProviders

Represents an implementation of ICommandHandlerProviders.

CommandHttpResponseExtensions

Provides extension methods for handling command results and Http responses.

CommandKeys

Represents an implementation of ICommandKeys that asks each ICanResolveKeyForCommand in turn.

CommandMethodExtensions

Extension methods for methods representing commands.

CommandOperationBoundary

Guards integration-owned early commits inside command operation boundaries. Arbitrary user service writes are outside this contract.

CommandOperationFailure

Immutable server-only original failure context optionally injected into Compensate. It cannot change command success.

CommandOperationInvoker

Immutable generated invocation metadata. Both execution and recovery arguments are preflighted before any operation starts.

CommandOperationInvokers

Registers source-generated typed operation invokers. Source-free dynamic commands use a validated reflection fallback. This registry does not imply that the rest of Arc supports NativeAOT.

CommandOperationOptions

Configures in-process command operation recovery.

CommandOperationOutcome

Immutable server-side observation of a started operation. Never included in the transport recovery summary.

CommandPipeline

Represents an implementation of ICommandPipeline.

CommandPipelineCancellationExtensions

Extension methods for executing commands with an explicit cancellation token.

CommandProvideInvoker

Represents an implementation of ICommandProvideInvoker.

CommandRecoverySummary

Sanitized recovery observations suitable for transport. No business descriptors or exception details are included.

CommandRefusal

Describes why a command was refused without treating retryable or infrastructure failures as refusals.

CommandRefusalExtensions

Classifies command results into business refusals.

CommandResponseValueHandlers

Represents an implementation of ICommandResponseValueHandlers.

CommandResult

Represents the result coming from executing a command.

CommandResult<TResponse>

Represents the result coming from executing a command with a response.

CommandValidationExecution

Identifies a validation-only command invocation to optional read providers.

CommandValidationRouteConvention

Represents an IApplicationModelProvider that adds /validate routes to controller-based command actions.

CommandValidator<T>

Represents the base type for a validator of commands.

ConflictingReadProtection

The exception that is thrown when a command explicitly enables read protection and declares itself unprotected.

DecisionReadCouldNotBeAcquired

The exception that is thrown when a protected decision could not be acquired; a validator must not turn this into a filterable validation result, even if the caller allows validation errors.

DefaultKeyForCommandResolver

Represents the ICanResolveKeyForCommand Arc ships: a command composes its key itself, or marks the property holding it.

ExplicitOffsetAttribute

Requires a JSON date-time string with an explicit offset or Z, preserving tick precision.

ExplicitOffsetRequiresDateTimeOrDateTimeOffset

The exception that is thrown when explicit-offset binding is applied to an unsupported property type.

GeneratedValue

Represents a validated generated value captured during command argument resolution.

GeneratedValueRejected

The exception that is thrown when a server-generated value fails validation.

GeneratedValues

Provides read-only access to the generated values captured by a command in resolution order.

InvalidCommandOperation

The exception that is thrown when an operation declaration or its command boundary is unsupported.

InvalidCommandValidationSeverity

The exception that is thrown when a command declares an unsupported blocking validation severity.

InvalidGeneratedValueParameter

The exception that is thrown when a generated value parameter declaration is invalid.

InvalidLookUpBy

The exception that is thrown when a lookup declaration names no command property or targets no read model.

LookUpByAttribute

Names the command property used to look up a read-model parameter.

MissingCommandResultFactory

The exception that is thrown when a command response cannot be wrapped in a CommandResult<TResponse> because no factory was generated for its runtime type and the code is ahead-of-time compiled, as under NativeAOT.

MissingGeneratedValueFactory

The exception that is thrown when a generated parameter has no factory and dynamic code is unavailable.

MultipleCommandHandlersForSameCommandType

Exception that gets thrown when multiple command handlers are found for the same command type.

MultipleUnhandledTupleValues

The exception that is thrown when multiple values in a tuple don't have corresponding response value handlers.

NoCommandContextAvailable

The exception that is thrown when the current CommandContext is requested but none is available in the current scope.

ProtectedDecisionsRequireCommandAwareReader

The exception that is thrown when a protected command is executed with a provider that cannot supply command-aware decision reads.

ReadProtectionAttribute

Declares the read-protection rollout mode for a command or its assembly.

ValueRequiresExplicitOffset

The exception that is thrown when a date-time input does not contain an explicit offset or Z.

Structs

CommandOperations

An immutable, ordered batch of command operation declarations. Default and an empty collection expression are empty. Membership is copied immediately; descriptors should themselves be immutable business data.

Interfaces

IAsyncCommandExecutionScope

Defines an execution scope with asynchronous initialization before command filters run.

IAuthorizationCommandFilter

Defines an ICommandFilter that authorizes command execution and must run before other filters.

ICanProvideKeyForCommand

Defines a command that composes the key identifying what it acts on.

ICanResolveKeyForCommand

Defines a rule for reading the key a command identifies its target by.

ICommandContextAccessor

Provides access to the current CommandContext.

ICommandContextModifier

Defines a system that can modify the current CommandContext.

ICommandContextValuesBuilder

Defines a builder for creating instances of CommandContextValues.

ICommandContextValuesProvider

Provides access to the command context values.

ICommandDependencySafety

Optional provider-neutral checks for values returned by a protected or unprotected command's Provide method.

ICommandExceptionMapper

Defines convention-discovered mappings of exceptions escaping command execution or response processing to command failures.

ICommandExecutionScope

Defines a scope that participates in the execution of a command, beginning before the command's filters and handler run and completing with the final CommandResult — whether the command succeeded or not.

ICommandFilter

Defines a filter that can be applied to commands.

ICommandFilters

Defines a system that can filter commands based on discovered ICommandFilter implementations.

ICommandHandler

Defines a handler for processing command response values.

ICommandHandlerArgumentResolver

Defines a system that resolves the arguments for a command handler, including any values produced by the command's Provide method, and surfaces any short-circuiting result it produces.

ICommandHandlerProvider

Defines a provider for command handlers.

ICommandHandlerProviders

Defines a system that can provide command handlers from multiple sources.

ICommandInvocationExecutionScope

Defines an execution scope with resources that must survive completion of every command scope.

ICommandKeys

Defines the keys commands identify their targets by.

ICommandOperation

Marks business data declaring command work. Implement one public instance Execute method and optionally Compensate, returning void, Task, or ValueTask. Method parameters receive scoped services and cancellation.

ICommandOperationExecutionScope

Explicitly opts an execution scope into flat command operation boundaries. Legacy scope order is preserved. A nonparticipant promises not to commit business changes; a participant reports conservative commit facts even after completion throws. At most one deferred participant is supported. Begin must not commit business work.

ICommandPipeline

Defines a system can execute commands.

ICommandPipelineWithCancellation

Defines a command pipeline that can execute commands with an explicit cancellation token.

ICommandProtectedDecisionSupport

Provider support required by protected commands, including supplied-provider pipeline calls.

ICommandProvideInvoker

Defines a system that invokes the optional Provide method on a command and returns the values it produces.

ICommandResponseValueContextUpdater

Defines a handler that can update the CommandContext for a handled response value before any response values are processed.

ICommandResponseValueHandler

Defines a handler for processing command response values.

ICommandResponseValueHandlerForAttributedEnumerable<TAttribute>

Defines a command response value handler for enumerables of attributed reference values.

ICommandResponseValueHandlerForAttributed<TAttribute>

Defines a command response value handler for values whose type carries an attribute.

ICommandResponseValueHandler<TValue>

Defines a command response value handler for a specific value type.

ICommandResponseValueHandlers

Defines a system that knows about ICommandResponseValueHandler and can use them to handle response values.

IProtectedDecisionAttribute

Implemented by an attribute that marks a command as an explicitly protected decision command.

IUnprotectedDecisionAttribute

Implemented by an attribute that marks a command as explicitly using advisory, unguarded decision reads.

Enums

CommandCommitDisposition

Integration-reported facts about the coordinated business commit, independent of command success.

CommandDecisionMode

The command's declared decision read profile.

CommandOperationCompensation

Observed compensation outcome for one started invocation.

CommandOperationFailureSource

The phase in which the original command failure was observed.

CommandRecoveryStatus

Describes observed in-process recovery, not durable or atomic rollback.

CommandRefusalKind

Identifies a business refusal of a command, distinct from a transient or infrastructure failure.

GeneratedValueFreshness

Defines the freshness policy for a generated value used as an append target.

ReadProtectionMode

The declared read-protection rollout mode.

Delegates

CommandOperationMethod

A typed generated call into an operation method, after the pipeline has bound all arguments.