When creating projections in Krimson, its necessary to be able to ensure that a processor has processed all available events in an existing stream. This PR adds an interface IHasCaughtUp that can be used from anywhere DI is available to determine whether a processor with a given client id has caught up.
This solves an issue with existing usages of Krimson:
Currently it's only possible to check whether a projection is up to date by checking KrimsonProcessorContext.HasCaughtUp which is only available when a message is received, whereas apps need to be able to perform this check on empty topics as well.
When creating projections in Krimson, its necessary to be able to ensure that a processor has processed all available events in an existing stream. This PR adds an interface IHasCaughtUp that can be used from anywhere DI is available to determine whether a processor with a given client id has caught up.
This solves an issue with existing usages of Krimson:
KrimsonProcessorContext.HasCaughtUp
which is only available when a message is received, whereas apps need to be able to perform this check on empty topics as well.