@Override
    public boolean put(final long time, final Record<K, V> record, final ProcessorRecordContext recordContext) {
        requireNonNull(record.value(), "value cannot be null");
        requireNonNull(record.key(), "key cannot be null");
        requireNonNull(recordContext, "recordContext cannot be null");
        if (observedStreamTime() - gracePeriod > record.timestamp()) {
            return false;
        }
        maybeUpdateSeqnumForDups();
        final Bytes serializedKey = Bytes.wrap(
            PrefixedWindowKeySchemas.TimeFirstWindowKeySchema.toStoreKeyBinary(keySerde.serializer().serialize(topic, record.key()),
                record.timestamp(),
                seqnum).get());
        final byte[] valueBytes = valueSerde.serializer().serialize(topic, record.value());
        final BufferValue buffered = new BufferValue(null, null, valueBytes, recordContext);
        store.put(serializedKey, buffered.serialize(0).array());

        if (loggingEnabled) {
            final BufferKey key = new BufferKey(0L, serializedKey);
            logValue(serializedKey, key, buffered);
        }

        bufferSize += computeRecordSize(serializedKey, buffered);
        numRecords++;
        minTimestamp = Math.min(minTimestamp(), record.timestamp());
        return true;
    }
As of 2.1, there's no way for users to directly interact with the buffer,
so this method is implemented solely to be called by Streams (which
it will do based on the {@code cache.max.bytes.buffering} config.
<p>
It's currently a no-op.
streams/src/main/java/org/apache/kafka/streams/state/internals/RocksDBTimeOrderedKeyValueBuffer.java