Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
Nestjs microservice

i have create my first microservice project with nest using kafka but I am stuck in a dilemma

Right now in API gateway i make every module a microservice client for example i have user component and in this component i created CQRS module and in this module i have created a connection to kafka and so on . Now i wonder this is a good approach or should i make one connection for all components?

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 {}

GitHub Repository

about 4 years ago · Santiago Gelvez
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda