public void set(T newValue) {
        Objects.requireNonNull(newValue);
        Iterator<Snapshot> iterator = snapshotRegistry.reverseIterator();
        if (iterator.hasNext()) {
            Snapshot snapshot = iterator.next();
            ObjectContainer<T> prevContainer = snapshot.getDelta(TimelineObject.this);
            if (prevContainer == null) {
                prevContainer = new ObjectContainer<>(initialValue);
                snapshot.setDelta(TimelineObject.this, prevContainer);
                prevContainer.setValue(value);
            }
        }
        this.value = newValue;
    }
This is a mutable reference to an immutable object. It can be snapshotted.
<br>
This class requires external synchronization.
server-common/src/main/java/org/apache/kafka/timeline/TimelineObject.java