public ConsumerRecords<K, V> onConsume(ConsumerRecords<K, V> records) {
        ConsumerRecords<K, V> interceptRecords = records;
        for (ConsumerInterceptor<K, V> interceptor : this.interceptors) {
            try {
                interceptRecords = interceptor.onConsume(interceptRecords);
            } catch (Exception e) {
                // do not propagate interceptor exception, log and continue calling other interceptors
                log.warn("Error executing interceptor onConsume callback", e);
            }
        }
        return interceptRecords;
    }
This is called when the records are about to be returned to the user.
<p>
This method calls {@link ConsumerInterceptor#onConsume(ConsumerRecords)} for each
interceptor. Records returned from each interceptor get passed to onConsume() of the next interceptor
in the chain of interceptors.
<p>
This method does not throw exceptions. If any of the interceptors in the chain throws an exception,
it gets caught and logged, and next interceptor in the chain is called with 'records' returned by the
previous successful interceptor onConsume call.

@param records records to be consumed by the client.
@return records that are either modified by interceptors or same as records passed to this method.
clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerInterceptors.java