# Producer

**Kind:** Type

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

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

## Definition

```ts
Sender & { connect(): Promise<void>; disconnect(): Promise<void>; isIdempotent(): boolean; readonly events: ProducerEvents; on( eventName: ProducerEvents['CONNECT'], listener: (event: ConnectEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ProducerEvents['DISCONNECT'], listener: (event: DisconnectEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ProducerEvents['REQUEST'], listener: (event: RequestEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ProducerEvents['REQUEST_QUEUE_SIZE'], listener: (event: RequestQueueSizeEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ProducerEvents['REQUEST_TIMEOUT'], listener: (event: RequestTimeoutEvent) => void, ): RemoveInstrumentationEventListener<typeof eventName>; on( eventName: ValueOf<ProducerEvents>, listener: (event: InstrumentationEvent<any>) => void, ): RemoveInstrumentationEventListener<typeof eventName>; transaction(): Promise<Transaction>; logger(): Logger; }
```
