The KclMessageDrivenChannelAdapter will periodically commit the checkpoint without checking the configured checkpoint mode. Notice how it automatically tries to commit after processing a single record: https://github.com/spring-projects/spring-integration-aws/blob/master/src/main/java/org/springframework/integration/aws/inbound/kinesis/KclMessageDrivenChannelAdapter.java#L320 While it does correctly check for the checkpoint mode after processing a batch: https://github.com/spring-projects/spring-integration-aws/blob/master/src/main/java/org/springframework/integration/aws/inbound/kinesis/KclMessageDrivenChannelAdapter.java#L331