docs: public static int read(final AtomicBuffer buffer, final ErrorConsumer consumer, final long sinceTimestamp)
      {
          int entries = 0;
          int offset = 0;
          final int capacity = buffer.capacity();
  
          while (offset < capacity)
          {
              final int length = buffer.getIntVolatile(offset + LENGTH_OFFSET);
              if (0 == length)
              {
                  break;
              }
  
              final long lastObservationTimestamp = buffer.getLongVolatile(offset + LAST_OBSERVATION_TIMESTAMP_OFFSET);
              if (lastObservationTimestamp >= sinceTimestamp)
              {
                  ++entries;
  
                  consumer.accept(
                      buffer.getInt(offset + OBSERVATION_COUNT_OFFSET),
                      buffer.getLong(offset + FIRST_OBSERVATION_TIMESTAMP_OFFSET),
                      lastObservationTimestamp,
                      buffer.getStringWithoutLengthUtf8(offset + ENCODED_ERROR_OFFSET, length - ENCODED_ERROR_OFFSET));
              }
  
              offset += align(length, RECORD_ALIGNMENT);
          }
  
          return entries;
      }