package com.gojek.beast.commiter; import com.gojek.beast.stats.Stats; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.consumer.OffsetAndMetadata; import org.apache.kafka.common.TopicPartition; import java.util.Map; import java.util.Set; @Slf4j @AllArgsConstructor public class OffsetAcknowledger implements Acknowledger { private final Stats statsClient = Stats.client(); private Set<Map<TopicPartition, OffsetAndMetadata>> partitionOffsetAck; @Override public boolean acknowledge(Map<TopicPartition, OffsetAndMetadata> offsets) { boolean status = partitionOffsetAck.add(offsets); statsClient.gauge("queue.elements,name=ack", partitionOffsetAck.size()); log.debug("Acknowledged by bq sink: {} status: {}", offsets, status); return status; } @Override public void close(String reason) { partitionOffsetAck.clear(); } }