For instance when allocating sequence numbers - for things like Redis you might want to have a backing store other than Redis itself and therefor chain the result of allocation to something.
But also, if a value does not exist in e.g. Redis, it can then chain to the next to ask if it has it and then update its own cache with this result so its faster the next time.
Redis is just an example - and its interesting to look at a holistic view of how to deal with these types of scenarios. Its not necessarily just a chain of responsibility simple implementation, but with rules. It could mean for instance one configured a master and then one or more secondaries - meaning that say something like IEventSequenceNumbersneeds a method for setting the sequence number as well - or a parallel interface for IEventSequenceNumbersStoragewhich only deals with this and can then be part of the chain.
Related to #809 - in the sense that it could be part of the work that needs to be done for that.
For instance when allocating sequence numbers - for things like Redis you might want to have a backing store other than Redis itself and therefor chain the result of allocation to something. But also, if a value does not exist in e.g. Redis, it can then chain to the next to ask if it has it and then update its own cache with this result so its faster the next time.
Redis is just an example - and its interesting to look at a holistic view of how to deal with these types of scenarios. Its not necessarily just a chain of responsibility simple implementation, but with rules. It could mean for instance one configured a master and then one or more secondaries - meaning that say something like
IEventSequenceNumbers
needs a method for setting the sequence number as well - or a parallel interface forIEventSequenceNumbersStorage
which only deals with this and can then be part of the chain.Related to #809 - in the sense that it could be part of the work that needs to be done for that.