docs: private void deserializeRecordForCollectionAndUpdateState(UserRecord record)
  		throws IOException {
  		ByteBuffer recordData = record.getData();
  
  		byte[] dataBytes = new byte[recordData.remaining()];
  		recordData.get(dataBytes);
  
  		final long approxArrivalTimestamp = record.getApproximateArrivalTimestamp().getTime();
  
  		final T value = deserializer.deserialize(
  			dataBytes,
  			record.getPartitionKey(),
  			record.getSequenceNumber(),
  			approxArrivalTimestamp,
  			subscribedShard.getStreamName(),
  			subscribedShard.getShard().getShardId());
  
  		SequenceNumber collectedSequenceNumber = (record.isAggregated())
  			? new SequenceNumber(record.getSequenceNumber(), record.getSubSequenceNumber())
  			: new SequenceNumber(record.getSequenceNumber());
  
  		fetcherRef.emitRecordAndUpdateState(
  			value,
  			approxArrivalTimestamp,
  			subscribedShardStateIndex,
  			collectedSequenceNumber);
  
  		lastSequenceNum = collectedSequenceNumber;
  	}