public void add(StreamEvent events) {
        if (!isFullSnapshot()) {
            if (isOperationLogEnabled) {
                operationChangeLog.add(new Operation(Operator.ADD, copyEvents(events)));
            }
            operationChangeLogSize++;
        } else {
            operationChangeLog.clear();
            operationChangeLogSize = 0;
            forceFullSnapshot = true;
        }

        if (first == null) {
            first = events;
        } else {
            last.setNext(events);
        }
        last = getLastEvent(events);
    }
The class to hold stream events in a queue and by managing its snapshots
modules/siddhi-core/src/main/java/io/siddhi/core/event/stream/holder/SnapshotableStreamEventQueue.java