@Override
    public TimestampedKeyAndJoinSide<K> deserialize(final String topic, final byte[] data) {
        final boolean isLeft = data[StateSerdes.TIMESTAMP_SIZE] == 1;
        final K key = keyDeserializer.deserialize(topic, rawKey(data));
        final long timestamp = timestampDeserializer.deserialize(topic, rawTimestamp(data));

        return isLeft ? TimestampedKeyAndJoinSide.makeLeft(key, timestamp) :
                TimestampedKeyAndJoinSide.makeRight(key, timestamp);
    }
The deserializer that is used for {@link TimestampedKeyAndJoinSide}, which is a combo key format of <timestamp, left/right flag, raw-key>
@param <K> the raw key type
streams/src/main/java/org/apache/kafka/streams/state/internals/TimestampedKeyAndJoinSideDeserializer.java