he creado mi primer proyecto de microservicio con nest usando kafka pero estoy atrapado en un dilema
En este momento, en API Gateway, hago de cada módulo un cliente de microservicio, por ejemplo, tengo un componente de usuario y en este componente creé el módulo CQRS y en este módulo creé una conexión con Kafka, etc. Ahora me pregunto si este es un buen enfoque o debo hacer una conexión para todos los componentes.
import { Module } from '@nestjs/common'; import { CreateUserCommand } from './commands/impl/create-user.command'; import { CqrsModule } from '@nestjs/cqrs'; import { ClientsModule, ClientsProviderAsyncOptions, } from '@nestjs/microservices'; import { UserClient } from '../user.enum'; import { MicroServiceConfigModule } from '../../../config/microservice/config.module'; import { MicroServiceConfigService } from '../../../config/microservice/config.service'; import { KafkaClientProviderOptionsFactory, RegisterConfig, } from '../../../factory'; import { UserCreatedEvent } from './events/impl/user-created.event'; import { CommandHandlers } from './commands/handlers'; import { EventHandlers } from './events/handlers'; import { UserSaga } from './user.saga'; // eslint-disable-next-line new-cap @Module({ imports: [ CqrsModule, ClientsModule.registerAsync([ { name: UserClient.NAME, imports: [MicroServiceConfigModule], useFactory: (configService: MicroServiceConfigService) => new RegisterConfig( new KafkaClientProviderOptionsFactory( configService, 'user', 'user-consumer', ), ).config, inject: [MicroServiceConfigService], } as ClientsProviderAsyncOptions, ]), ], providers: [...CommandHandlers, ...EventHandlers, UserSaga], exports: [CqrsModule], }) export class UserCqrsModule {}