code: public void deserialize(final BinaryDecoder decoder, final MultiObserver observer, final long sequence)
      throws IOException, IllegalAccessException, InvocationTargetException {
  
      final TMessage message = messageReader.read(null, decoder);
      if (message != null) {
        observer.onNext(sequence, message);
      } else {
        throw new RuntimeException("Failed to deserialize message [" + msgMetaClass.getSimpleName() + "]");
      }
    }
docs: Deserialize messages of type TMessage from input decoder.
  @param decoder An Avro BinaryDecoder instance that is reading the input stream containing the message.
  @param observer An instance of the MultiObserver class that will process the message.
  @param sequence A long value which contains the sequence number of the message in the input stream.
  @throws IOException Read of input stream in decoder failed.
  @throws IllegalAccessException Target method in observer is not accessible.
  @throws InvocationTargetException Subclass threw and exception.