@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
37 lines (36 loc) • 1.35 kB
TypeScript
import type Kafka from "kafkajs";
import type { PartitionAssigner } from "kafkajs";
import type { KafkaTopicName } from "../libs/branded-types/kafka/index.js";
import type { KafkaWithLogger, KafkaBrokerConfig } from "./kafka-broker.js";
import { KTKafkaBroker } from "./kafka-broker.js";
export type KTKafkaConsumerConfig = {
kafkaSettings: {
consumerGroupId: string;
subscribeFromBeginning?: boolean;
subscribeRetries?: number;
subscribeRetryInterval?: number;
heartbeatInterval?: number;
partitionsConsumedConcurrently?: number;
heartbeatEarlyFactor?: number;
sessionTimeout?: number;
maxWaitTimeInMs?: number;
maxBytesPerPartition?: number;
maxInFlightRequests?: number;
batchConsuming?: boolean;
rebalanceTimeout?: number;
maxBytes?: number;
partitionAssignerFn?: PartitionAssigner;
};
} & KafkaBrokerConfig;
declare class KTKafkaConsumer extends KTKafkaBroker {
#private;
heartBeatInterval: number;
consumer: Kafka.Consumer;
heartbeatEarlyFactor: number;
constructor(params: KafkaWithLogger<KTKafkaConsumerConfig>);
isConnected(): boolean;
init(): Promise<boolean>;
destroy(): Promise<void>;
subscribeTopic(topics: KafkaTopicName[]): Promise<void>;
}
export { KTKafkaConsumer };