# Consumer

**Kind:** Type

**Source:** [`packages/microservices/external/kafka.interface.ts`](https://github.com/nestjs/nest/blob/master/packages/microservices/external/kafka.interface.ts#L1043)

**Part of:** [Microservices](subsystem-packages-microservices)

## Definition

```ts
{ connect(): Promise<void>; disconnect(): Promise<void>; subscribe(subscription: ConsumerSubscribeTopics): Promise<void>; stop(): Promise<void>; run(config?: ConsumerRunConfig): Promise<void>; commitOffsets( topicPartitions: Array<TopicPartitionOffsetAndMetadata>, ): Promise<void>; seek(topicPartitionOffset: TopicPartitionOffset): void; describeGroup(): Promise<GroupDescription>; pause(topics: Array<{ topic: string; partitions?: number[] }>): void; paused(): TopicPartitions[]; resume(topics: Array<{ topic: string; partitions?: number[] }>): void; on( eventName: ConsumerEvents['HEARTBEAT'], listener: (event: ConsumerHeartbeatEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['COMMIT_OFFSETS'], listener: (event: ConsumerCommitOffsetsEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['GROUP_JOIN'], listener: (event: ConsumerGroupJoinEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['FETCH_START'], listener: (event: ConsumerFetchStartEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['FETCH'], listener: (event: ConsumerFetchEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['START_BATCH_PROCESS'], listener: (event: ConsumerStartBatchProcessEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['END_BATCH_PROCESS'], listener: (event: ConsumerEndBatchProcessEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['CONNECT'], listener: (event: ConnectEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['DISCONNECT'], listener: (event: DisconnectEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['STOP'], listener: (event: InstrumentationEvent<null>) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['CRASH'], listener: (event: ConsumerCrashEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['REBALANCING'], listener: (event: ConsumerRebalancingEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['RECEIVED_UNSUBSCRIBED_TOPICS'], listener: (event: ConsumerReceivedUnsubscribedTopicsEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['REQUEST'], listener: (event: RequestEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['REQUEST_TIMEOUT'], listener: (event: RequestTimeoutEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ConsumerEvents['REQUEST_QUEUE_SIZE'], listener: (event: RequestQueueSizeEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ValueOf<ConsumerEvents>, listener: (event: InstrumentationEvent<any>) => void, ): RemoveInstrumentationEventListener<typeof eventName>; logger(): Logger; readonly events: ConsumerEvents; }
```
