Provide base class with default implementation of ShardIdentifierProvider
Description
To allow for an evolvement of the ShardIdentifierProvider interface without breaking existing implementations of the same, we should provide a default implementation and encourage implementors to extend that base class instead of implementing the interface directly. That way new methods can be added to the interface in future releases while ensuring compatibility with existing implementors (as long as a sensible default implementation can be provided).
To allow for an evolvement of the
ShardIdentifierProvider
interface without breaking existing implementations of the same, we should provide a default implementation and encourage implementors to extend that base class instead of implementing the interface directly. That way new methods can be added to the interface in future releases while ensuring compatibility with existing implementors (as long as a sensible default implementation can be provided).