Kafka как хранилище событий в системе источников событий

Этот вопрос похож на Использование Kafka в качестве (CQRS) Eventstore. Хорошая идея?, но более конкретная реализация. Как использовать kafka как хранилище событий, когда у меня есть тысячи "источников" событий (совокупные корни в DDD)? Поскольку я прочитал связанный вопрос и некоторые другие места, у меня будут проблемы с темой для каждого источника. Если я разделяю события на темы по типу, это будет намного легче потреблять и хранить, но мне нужен доступ к потоку событий конкретного источника. Как сделать поиск событий с помощью kafka?

Ответ 1

Поместить все источники событий в одну тему с типом данных (бережливость?), который включает в себя уникальный идентификатор для каждого источника события. Затем создайте пользователей для каждого типа событий, который вас интересует, и определите каждого с уникальным именем группы клиентов. Таким образом, у каждого уникального источника потребитель будет иметь собственное значение смещения в zookeeper. Каждый читает всю тему, но только выводит (или занимается) информацией из одного источника (или группы источников).