UNPKG

@platformatic/kafka

Version:

Modern and performant client for Apache Kafka

30 lines (29 loc) 1.37 kB
import { type CompressionAlgorithmValue } from '../../protocol/compression.ts'; import { type MessageToProduce } from '../../protocol/records.ts'; import { type BaseOptions, type TopicWithPartitionAndOffset } from '../base/types.ts'; import { type Serializers } from '../serde.ts'; export interface ProducerInfo { producerId: bigint; producerEpoch: number; } export interface ProduceResult { offsets?: TopicWithPartitionAndOffset[]; unwritableNodes?: number[]; } export type Partitioner<Key, Value, HeaderKey, HeaderValue> = (message: MessageToProduce<Key, Value, HeaderKey, HeaderValue>) => number; export interface ProduceOptions<Key, Value, HeaderKey, HeaderValue> { producerId?: bigint; producerEpoch?: number; idempotent?: boolean; acks?: number; compression?: CompressionAlgorithmValue; partitioner?: Partitioner<Key, Value, HeaderKey, HeaderValue>; autocreateTopics?: boolean; repeatOnStaleMetadata?: boolean; } export type ProducerOptions<Key, Value, HeaderKey, HeaderValue> = BaseOptions & ProduceOptions<Key, Value, HeaderKey, HeaderValue> & { serializers?: Partial<Serializers<Key, Value, HeaderKey, HeaderValue>>; }; export type SendOptions<Key, Value, HeaderKey, HeaderValue> = { messages: MessageToProduce<Key, Value, HeaderKey, HeaderValue>[]; } & ProduceOptions<Key, Value, HeaderKey, HeaderValue>;