code: protected ShardConsumer createShardConsumer(
  		Integer subscribedShardStateIndex,
  		StreamShardHandle subscribedShard,
  		SequenceNumber lastSequenceNum,
  		ShardMetricsReporter shardMetricsReporter) {
  		return new ShardConsumer<>(
  			this,
  			subscribedShardStateIndex,
  			subscribedShard,
  			lastSequenceNum,
  			this.kinesisProxyFactory.create(configProps),
  			shardMetricsReporter);
  	}
docs: Create a new shard consumer.
  Override this method to customize shard consumer behavior in subclasses.
  @param subscribedShardStateIndex the state index of the shard this consumer is subscribed to
  @param subscribedShard the shard this consumer is subscribed to
  @param lastSequenceNum the sequence number in the shard to start consuming
  @param shardMetricsReporter the reporter to report metrics to
  @return shard consumer