Interface IReducers
- Namespace
- Cratis.Chronicle.Reducers
- Assembly
- Cratis.Chronicle.dll
Defines a system for working with reducer registrations for the Kernel.
public interface IReducers
- Extension Methods
Methods
Discover()
Discover all reducers from the entry assembly and dependencies.
Task Discover()
Returns
- Task
Awaitable task.
FastForward(ReducerId)
Fast forward a specific reducer by its identifier to the tail of the event log, skipping every event it has not yet handled without invoking it.
Task<FastForwardResult> FastForward(ReducerId reducerId)
Parameters
Returns
- Task<FastForwardResult>
The FastForwardResult describing what happened.
FastForward<TReducer>()
Fast forward a reducer to the tail of the event log, skipping every event it has not yet handled without invoking it.
Task<FastForwardResult> FastForward<TReducer>() where TReducer : IReducer
Returns
- Task<FastForwardResult>
The FastForwardResult describing what happened.
Type Parameters
TReducerType of reducer to fast forward.
GetAllHandlers()
Get all registered handlers.
IEnumerable<IReducerHandler> GetAllHandlers()
Returns
- IEnumerable<IReducerHandler>
Collection of IReducerHandler.
GetClrType(ReducerId)
Get the CLR type for a specific reducer.
Type GetClrType(ReducerId reducerId)
Parameters
Returns
- Type
The type.
GetFailedPartitionsFor(Type)
Get any failed partitions for a specific reducer.
Task<IEnumerable<FailedPartition>> GetFailedPartitionsFor(Type reducerType)
Parameters
reducerTypeTypeType of reducer.
Returns
- Task<IEnumerable<FailedPartition>>
Collection of FailedPartition, if any.
GetFailedPartitionsFor<TReducer>()
Get any failed partitions for a specific reducer.
Task<IEnumerable<FailedPartition>> GetFailedPartitionsFor<TReducer>() where TReducer : IReducer
Returns
- Task<IEnumerable<FailedPartition>>
Collection of FailedPartition, if any.
Type Parameters
TReducerType of reducer.
GetHandlerById(ReducerId)
Get all registered reducers by its identifier.
IReducerHandler GetHandlerById(ReducerId reducerId)
Parameters
reducerIdReducerIdThe identifier of the reducer to get.
Returns
- IReducerHandler
IReducerHandler instance.
GetHandlerFor(Type)
Gets a specific handler by its reducer type.
IReducerHandler GetHandlerFor(Type reducerType)
Parameters
reducerTypeTypeThe reducer type to get for.
Returns
GetHandlerForReadModelType(Type)
Get a specific handler for a specific model type.
IReducerHandler GetHandlerForReadModelType(Type readModelType)
Parameters
readModelTypeTypeModel type to get for.
Returns
- IReducerHandler
IReducerHandler instance.
GetHandlerFor<TReducer>()
Get a specific handler for a specific reducer.
IReducerHandler GetHandlerFor<TReducer>() where TReducer : IReducer
Returns
Type Parameters
TReducerType of reducer to get for.
GetInstanceById(Type, ReadModelKey)
Get a reduced read model instance by key by replaying events in-process.
Task<object?> GetInstanceById(Type readModelType, ReadModelKey readModelKey)
Parameters
readModelTypeTypeThe read model type to get an instance for.
readModelKeyReadModelKeyThe read model key to get.
Returns
GetInstances(Type, EventCount?)
Get reduced read model instances by replaying events in-process.
Task<IEnumerable<object>> GetInstances(Type readModelType, EventCount? eventCount = null)
Parameters
readModelTypeTypeThe read model type to get instances for.
eventCountEventCountOptional limit for number of events to replay from the beginning.
Returns
- Task<IEnumerable<object>>
Collection of reduced read model instances.
GetStateFor(Type)
Gets a registered reducer's state.
Task<ReducerState> GetStateFor(Type reducerType)
Parameters
reducerTypeTypeThe reducer CLR type.
Returns
- Task<ReducerState>
The reducer state.
Exceptions
- TypeBasedArtifactRegistrationNotSupported
The custom registry does not support type-based state lookup.
GetStateFor<TReducer>()
Get the state of a specific reactor.
Task<ReducerState> GetStateFor<TReducer>() where TReducer : IReducer
Returns
Type Parameters
TReducerType of reactor get for.
HasFor(Type)
Check if there is a reducer for a specific read model type.
bool HasFor(Type readModelType)
Parameters
readModelTypeTypeThe read model type to check for.
Returns
- bool
True if it has, false if not.
HasFor<TReadModel>()
Check if there is a reducer for a specific read model type.
bool HasFor<TReadModel>()
Returns
- bool
True if it has, false if not.
Type Parameters
TReadModelThe read model type to check for.
HasReducerFor(Type)
Check if there is a reducer for a specific model type.
bool HasReducerFor(Type readModelType)
Parameters
readModelTypeTypeModel type to check for.
Returns
- bool
True if it has, false if not.
Register()
Register all reducers with Chronicle.
Task Register()
Returns
- Task
Awaitable task.
Register(Type)
Registers a reducer with its inferred read model.
Task<IReducerHandler> Register(Type reducerType)
Parameters
reducerTypeTypeThe reducer CLR type.
Returns
- Task<IReducerHandler>
The registered handler.
Exceptions
- TypeBasedArtifactRegistrationNotSupported
The custom registry does not support type-based registration.
Register<TReducer, TReadModel>()
Registers a TReducer reducer with Chronicle.
Task<IReducerHandler> Register<TReducer, TReadModel>() where TReducer : IReducerFor<TReadModel> where TReadModel : class
Returns
- Task<IReducerHandler>
Awaitable task.
Type Parameters
TReducerThe reactor type.
TReadModelThe model type the reducer is for.
Replay(ReducerId)
Replay a specific reducer by its identifier.
Task<JobId> Replay(ReducerId reducerId)
Parameters
Returns
- Task<JobId>
The JobId of the replay job that was started or resumed, or NotSet if the reducer is not replayable or its observer is not in a state it can replay from (disconnected, quarantined); reconnect or release it before replaying.
Replay(Type)
Replays a registered reducer CLR type.
Task<JobId> Replay(Type reducerType)
Parameters
reducerTypeTypeThe reducer CLR type.
Returns
Exceptions
- TypeBasedArtifactRegistrationNotSupported
The custom registry does not support type-based replay.
Replay<TReducer>()
Replay a specific reducer.
Task<JobId> Replay<TReducer>() where TReducer : IReducer
Returns
- Task<JobId>
The JobId of the replay job that was started or resumed, or NotSet if the reducer is not replayable or its observer is not in a state it can replay from (disconnected, quarantined); reconnect or release it before replaying.
Type Parameters
TReducerType of reducer to replay.