Fcqrs Module
Functions and values
| Function or value | Description |
Full Usage:
actor config loggerFactory connection clusterName
Parameters:
IConfiguration
loggerFactory : ILoggerFactory
connection : Connection option
clusterName : string
Returns: IActor
|
|
|
|
|
|
Full Usage:
aggregateWithEffects api def runner
Parameters: Returns: AggregateHandle<'Command, 'Event>
|
Register an aggregate whose `decide` uses `dispatch` (the RunAsync effect), supplying the runner that turns an effect DESCRIPTION into a command sent back to the aggregate. `decide` stays pure; the oracle or side effect lives only here. The runner MUST be total (wrap it with `total` so an oracle error becomes a command, never an escaping exception). See `EventAction.RunAsync` for the ephemeral contract.
|
Full Usage:
connect dbType connectionString
Parameters:
DBType
connectionString : string
Returns: Connection
|
|
|
|
|
|
|
|
Full Usage:
sendAwaiting subscription handle cid id command filter
Parameters:
ISubscribe<IMessageWithCID>
handle : AggregateHandle<'Command, 'Event>
cid : CID
id : AggregateId
command : 'Command
filter : 'Event -> bool
Returns: Async<Event<'Event>>
|
Read-your-writes in one call: subscribe on the CID BEFORE sending, send, then await the projection ONLY if the delivered ack was journaled. A deferred (rejection-style) ack never reaches the journal, so a naive await would hang until timeout. The subscribe-before-send ordering is what makes the wait race-free; owning it here means callers cannot get it backwards. Awaits exactly ONE projected event: a batch persist (PersistAllEvents) caller should Subscribe with an explicit take instead. Envelopes without the delivery stamp (pre-stamp FCQRS) are treated as journaled. The projection wait is bounded by `akka.fcqrs.command-timeout` (default 30s, bare number = seconds): a projection that suppresses or filters out the matching notification raises TimeoutException instead of hanging the caller forever.
|
|
|
FCQRS