Через некоторое время я возвращаюсь к NestJS и пытаюсь настроить простого потребителя Kafka. Вот базовый пример моего контроллера, использующего декоратор EventPattern для подписки на тему Kafka.
import { Controller } from '@nestjs/common';
import { EventPattern, Payload } from '@nestjs/microservices';
@Controller()
export class MyController {
@EventPattern('my-topic')
async handleMessage(@Payload() data: Record<string, unknown>) {
console.info(data);
}
}
Раньше эта настройка работала для меня, но теперь я столкнулся с некоторыми проблемами. При запуске KafkaJS выдает следующую ошибку:
KafkaJSNonRetriableError: Invalid topic undefined
Мне кажется, название темы не правильно подобрано. Я немного в недоумении, почему это так. Для контекста, вот как я настраивал клиент Kafka в main.ts:
const app = await NestFactory.create(AppModule);
...
app.connectMicroservice({
transport: Transport.KAFKA,
options: {
client: {
brokers: [process.env['KAFKA_BROKER']],
clientId: process.env['KAFKA_CLIENT_ID'],
},
consumer: {
groupId: process.env['KAFKA_CONSUMER_GROUP_ID'],
allowAutoTopicCreation: true,
},
},
});
...
await app.startAllMicroservices();
Любые идеи будут высоко оценены!

Я решил эту проблему, обновив kafkajs до версии 2.2.4.