Header menu logo FCQRS

Common Module

Contains common types like Events and Commands

Types and nested modules

Type/Module Description

CommandHandler

(Internal) Contains the implementation for command subscriptions.

Curry

SagaBuilder

Contains types and functions for building and initializing sagas

SagaStarter

Contains types and functions related to the Saga Starter actor (internal implementation detail).

AbortedEvent

AkkaLogLevel

Akka's internal log verbosity. FCQRS ships with Akka logging OFF (it is chatty); this enables it without hand-editing HOCON/config.

Command<'CommandDetails>

Represents a command to be processed by an aggregate actor. The specific type of the command payload.

ContinueOrAbort<'EventDetails>

Event<'EventDetails>

Represents an event generated by an aggregate actor as a result of processing a command. The specific type of the event payload.

EventAction<'T>

Defines the possible actions an aggregate or saga actor can take after processing a command or event. The type of the event payload associated with the action (e.g., for PersistEvent).

ExecuteCommand

Represents a command to be executed, often scheduled or triggered by a saga.

FactoryAndName

Represents the information needed to locate or create a target actor, typically used within sagas.

Handler<'Cmd, 'Event>

IActor

Defines the core functionalities and context provided by the FCQRS environment to actors. This interface provides access to essential Akka.NET services and FCQRS initialization methods.

IConfigurationWrapper

IEnvelope

Non-generic access to a Command<_>/Event<_> payload, so a boxed message can be unwrapped to its details without knowing the concrete payload type.

ILoggerFactoryWrapper

ISerializable

Marker interface for types that can be serialized by Akka.NET.

JournalTypes

Stable logical names for journal payload types. Register every command/event/ state type that touches the journal; the serializer then writes manifests like "fcqrs:ev(doc.event)" instead of CLR AssemblyQualifiedNames — so types can be renamed or moved freely (update the mapping, old journal rows keep reading). Unregistered types fall back to the legacy AQN manifest.

Notify

Decision returned by a filtered projection handler: whether the event it just handled should be published to subscribers as-is. `Publish` notifies (so a read-your-writes awaiter wakes on it); `Suppress` updates the read model silently — e.g. an intermediate event that a later one supersedes. The middle ground between an always-publish handler and one returning an arbitrary notification list.

PrefixConversion

Default shard name used if no specific sharding strategy is provided. Represents a potential transformation to apply to an entity ID prefix, used in saga routing. Allows sagas to be co-located or routed differently based on the originator's ID structure.

SagaState<'SagaData, 'State>

Represents the state of a saga instance. The type of the custom data held by the saga. The type representing the saga's current state machine state (e.g., an enum or DU).

SagaTransition<'State>

Represents the next state transition for a saga after processing an event or timeout.

ShardFactoryWith<'T, 'TEvent, 'TCommand, 'TState>

ShardFactoryWithEnv<'T, 'TEnv, 'TEvent, 'TCommand, 'TState>

SnapshotPolicy

Snapshot cadence for an aggregate or saga, set per entity at registration.

TargetActor

Represents the target of a command execution triggered by a saga.

TargetName

Represents the name identifying a target actor for a command, typically used within sagas.

Telemetry

FCQRS's ActivitySource names — register them with your tracing pipeline (e.g. OpenTelemetry: tracing.AddSource(Telemetry.AllActivitySources)).

Functions and values

Function or value Description

DEFAULT_SHARD

Full Usage: DEFAULT_SHARD

Returns: string
Returns: string

commandHandler actorApi eventFilter cid actorId command

Full Usage: commandHandler actorApi eventFilter cid actorId command

Parameters:
    actorApi : IActor
    eventFilter : 'TEvent -> bool
    cid : CID
    actorId : AggregateId
    command : 'TCommand

Returns: Async<'TEvent>
Modifiers: inline
Type parameters: ^T, 'TEvent, 'TCommand, 'TState
actorApi : IActor
eventFilter : 'TEvent -> bool
cid : CID
actorId : AggregateId
command : 'TCommand
Returns: Async<'TEvent>

commandHandlerWithEnv env actorApi eventFilter cid actorId command

Full Usage: commandHandlerWithEnv env actorApi eventFilter cid actorId command

Parameters:
    env : 'TEnv
    actorApi : IActor
    eventFilter : 'TEvent -> bool
    cid : CID
    actorId : AggregateId
    command : 'TCommand

Returns: Async<'TEvent>
Modifiers: inline
Type parameters: ^T, 'TEnv, 'TEvent, 'TCommand, 'TState
env : 'TEnv
actorApi : IActor
eventFilter : 'TEvent -> bool
cid : CID
actorId : AggregateId
command : 'TCommand
Returns: Async<'TEvent>

extractTraceId cid

Full Usage: extractTraceId cid

Parameters:
Returns: string

Helper to extract TraceId from a CID (W3C traceparent format: 00-{traceId}-{spanId}-{flags}) Returns the full CID string if not in traceparent format

cid : CID
Returns: string

sameTrace cid1 cid2

Full Usage: sameTrace cid1 cid2

Parameters:
Returns: bool

Compare two CIDs by their TraceId (for correlation in distributed tracing scenarios)

cid1 : CID
cid2 : CID
Returns: bool

traceparentCid ()

Full Usage: traceparentCid ()

Parameters:
    () : unit

Returns: CID
() : unit
Returns: CID

Type something to start searching.