public static List<StreamOffsetRange> decode(byte[] bytes) {
        ByteBuf buf = Unpooled.wrappedBuffer(bytes);
        byte magic = buf.readByte();
        if (magic != MAGIC) {
            throw new IllegalArgumentException("Invalid magic byte: " + magic);
        }
        byte flag = buf.readByte();
        int rangeBytesSize = buf.readInt();
        byte[] rangesBytes;
        boolean compressed = (flag & ZSTD_COMPRESSED) != 0;
        byte[] compressedBytes = new byte[buf.readableBytes()];
        buf.readBytes(compressedBytes);
        if (compressed) {
            rangesBytes = Zstd.decompress(compressedBytes, rangeBytesSize);
        } else {
            rangesBytes = compressedBytes;
        }
        List<StreamOffsetRange> ranges = new ArrayList<>(rangeBytesSize / 20);
        ByteBuf rangesBuf = Unpooled.wrappedBuffer(rangesBytes);
        while (rangesBuf.readableBytes() > 0) {
            long streamId = rangesBuf.readLong();
            long startOffset = rangesBuf.readLong();
            int count = rangesBuf.readInt();
            ranges.add(new StreamOffsetRange(streamId, startOffset, startOffset + count));
        }
        return ranges;
    }
The order id of the object. Sort by this field to get the order of the objects which contains logically increasing streams.
<p>
When compact a batch of objects to a compacted object, this compacted object's order id will be assigned the value <code>first object's order
id in this batch</code>
metadata/src/main/java/org/apache/kafka/metadata/stream/S3StreamSetObject.java