Producer

zio.kafka.producer.Producer
See theProducer companion object
trait Producer

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def flush: Task[Unit]

Flushes the producer's internal buffer. This will guarantee that all records currently buffered will be transmitted to the broker.

Flushes the producer's internal buffer. This will guarantee that all records currently buffered will be transmitted to the broker.

Attributes

Expose internal producer metrics

Expose internal producer metrics

Attributes

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Attributes

def produce[R, K, V](record: ProducerRecord[K, V], keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, RecordMetadata]

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Attributes

def produce[R, K, V](topic: String, key: K, value: V, keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, RecordMetadata]

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Produces a single record and await broker acknowledgement. See produceAsync for version that allows to avoid round-trip-time penalty for each record.

Attributes

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of the record to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the record.

It is usually recommended to not await the inner layer of every individual record, but enqueue a batch of records and await all of their acknowledgements at once. That amortizes the cost of sending requests to Kafka and increases throughput. See produce for version that awaits broker acknowledgement.

Attributes

def produceAsync[R, K, V](record: ProducerRecord[K, V], keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, Task[RecordMetadata]]

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of the record to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the record.

It is usually recommended to not await the inner layer of every individual record, but enqueue a batch of records and await all of their acknowledgements at once. That amortizes the cost of sending requests to Kafka and increases throughput. See produce for version that awaits broker acknowledgement.

Attributes

def produceAsync[R, K, V](topic: String, key: K, value: V, keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, Task[RecordMetadata]]

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

Produces a single record. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of the record to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the record.

It is usually recommended to not await the inner layer of every individual record, but enqueue a batch of records and await all of their acknowledgements at once. That amortizes the cost of sending requests to Kafka and increases throughput. See produce for version that awaits broker acknowledgement.

Attributes

Produces a chunk of records. See produceChunkAsync for version that allows to avoid round-trip-time penalty for each chunk.

Produces a chunk of records. See produceChunkAsync for version that allows to avoid round-trip-time penalty for each chunk.

Attributes

def produceChunk[R, K, V](records: Chunk[ProducerRecord[K, V]], keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, Chunk[RecordMetadata]]

Produces a chunk of records. See produceChunkAsync for version that allows to avoid round-trip-time penalty for each chunk.

Produces a chunk of records. See produceChunkAsync for version that allows to avoid round-trip-time penalty for each chunk.

Attributes

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of all the records to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the records.

It is possible that for chunks that exceed the producer's internal buffer size, the outer layer will also signal the transmission of part of the chunk. Regardless, awaiting the inner layer guarantees the transmission of the entire chunk.

Attributes

def produceChunkAsync[R, K, V](records: Chunk[ProducerRecord[K, V]], keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): RIO[R, Task[Chunk[RecordMetadata]]]

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of all the records to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the records.

It is possible that for chunks that exceed the producer's internal buffer size, the outer layer will also signal the transmission of part of the chunk. Regardless, awaiting the inner layer guarantees the transmission of the entire chunk.

Attributes

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

Produces a chunk of records. The effect returned from this method has two layers and describes the completion of two actions:

  1. The outer layer describes the enqueueing of all the records to the Producer's internal buffer.
  2. The inner layer describes receiving an acknowledgement from the broker for the transmission of the records.

It is possible that for chunks that exceed the producer's internal buffer size, the outer layer will also signal the transmission of part of the chunk. Regardless, awaiting the inner layer guarantees the transmission of the entire chunk.

This variant of produceChunkAsync more accurately reflects that individual records within the Chunk can fail to publish, rather than the failure being at the level of the Chunk.

This variant does not accept serializers as they may also fail independently of each record and this is not reflected in the return type.

Attributes

Concrete methods

final def produceAll[R, K, V](keySerializer: Serializer[R, K], valueSerializer: Serializer[R, V]): ZPipeline[R, Throwable, ProducerRecord[K, V], RecordMetadata]

A stream pipeline that produces all records from the stream.

A stream pipeline that produces all records from the stream.

Attributes