import { Module, Global } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ClientsModule, Transport } from '@nestjs/microservices'; import { EventPublisherService } from './event-publisher.service'; @Global() @Module({ imports: [ ClientsModule.registerAsync([ { name: 'KAFKA_SERVICE', imports: [ConfigModule], useFactory: (configService: ConfigService) => ({ transport: Transport.KAFKA, options: { client: { clientId: configService.get('KAFKA_CLIENT_ID', 'planting-service'), brokers: configService.get('KAFKA_BROKERS', 'localhost:9092').split(','), }, producer: { allowAutoTopicCreation: true, }, }, }), inject: [ConfigService], }, ]), ], providers: [EventPublisherService], exports: [EventPublisherService, ClientsModule], }) export class KafkaModule {}