Consumer

trait Consumer
Companion:
object
class Object
trait Matchable
class Any

Value members

Abstract methods

def assignment: Task[Set[TopicPartition]]

Returns the topic-partitions that this consumer is currently assigned.

Returns the topic-partitions that this consumer is currently assigned.

This is subject to consumer rebalancing, unless using a manual subscription.

def beginningOffsets(partitions: Set[TopicPartition], timeout: Duration): Task[Map[TopicPartition, Long]]
def committed(partitions: Set[TopicPartition], timeout: Duration): Task[Map[TopicPartition, Option[OffsetAndMetadata]]]

Retrieve the last committed offset for the given topic-partitions

Retrieve the last committed offset for the given topic-partitions

def consumeWith[R : Tag, R1 : Tag, K, V](subscription: Subscription, keyDeserializer: Deserializer[R, K], valueDeserializer: Deserializer[R, V], commitRetryPolicy: Schedule[Any, Any, Any])(f: (K, V) => URIO[R1, Unit]): ZIO[R & R1, Throwable, Unit]
def endOffsets(partitions: Set[TopicPartition], timeout: Duration): Task[Map[TopicPartition, Long]]
def listTopics(timeout: Duration): Task[Map[String, List[PartitionInfo]]]
def metrics: Task[Map[MetricName, Metric]]

Expose internal consumer metrics

Expose internal consumer metrics

def offsetsForTimes(timestamps: Map[TopicPartition, Long], timeout: Duration): Task[Map[TopicPartition, OffsetAndTimestamp]]

Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition.

Look up the offsets for the given partitions by timestamp. The returned offset for each partition is the earliest offset whose timestamp is greater than or equal to the given timestamp in the corresponding partition.

The consumer does not have to be assigned the partitions. If no messages exist yet for a partition, it will not exist in the returned map.

def partitionedAssignmentStream[R, K, V](keyDeserializer: Deserializer[R, K], valueDeserializer: Deserializer[R, V]): Stream[Throwable, Chunk[(TopicPartition, ZStream[R, Throwable, CommittableRecord[K, V]])]]

Create a stream that emits chunks whenever new partitions are assigned to this consumer.

Create a stream that emits chunks whenever new partitions are assigned to this consumer.

The top-level stream will emit chunks whenever the consumer rebalances, unless a manual subscription was made. When rebalancing occurs, new topic-partition streams may be emitted and existing streams may be completed.

All streams can be completed by calling stopConsumption.

def partitionedStream[R, K, V](keyDeserializer: Deserializer[R, K], valueDeserializer: Deserializer[R, V]): Stream[Throwable, (TopicPartition, ZStream[R, Throwable, CommittableRecord[K, V]])]

Create a stream with messages on the subscribed topic-partitions by topic-partition

Create a stream with messages on the subscribed topic-partitions by topic-partition

The top-level stream will emit new topic-partition streams for each topic-partition that is assigned to this consumer. This is subject to consumer rebalancing, unless a manual subscription was made. When rebalancing occurs, new topic-partition streams may be emitted and existing streams may be completed.

All streams can be completed by calling stopConsumption.

def partitionsFor(topic: String, timeout: Duration): Task[List[PartitionInfo]]
def plainStream[R, K, V](keyDeserializer: Deserializer[R, K], valueDeserializer: Deserializer[R, V], bufferSize: Int): ZStream[R, Throwable, CommittableRecord[K, V]]

Create a stream with all messages on the subscribed topic-partitions

Create a stream with all messages on the subscribed topic-partitions

The stream will emit messages from all topic-partitions interleaved. Per-partition record order is guaranteed, but the topic-partition interleaving is non-deterministic.

Up to bufferSize chunks may be buffered in memory by this operator.

The stream can be completed by calling stopConsumption.

def position(partition: TopicPartition, timeout: Duration): Task[Long]
def stopConsumption: UIO[Unit]

Stops consumption of data, drains buffered records, and ends the attached streams while still serving commit requests.

Stops consumption of data, drains buffered records, and ends the attached streams while still serving commit requests.

def subscribe(subscription: Subscription): Task[Unit]
def subscription: Task[Set[String]]
def unsubscribe: Task[Unit]