Коллеги, привет. Подскажите, пожалуйста, как идеологически/архитектурно верно: - создавать отдельный топик

под конкретный поток данных (например, отдельный топик для передачи данных о товарах, отдельный топик для цен для товаров и т.п.);
- писать все в один топик, добавляя в сообщение информацию для маршрутизации и дальше забирать из топика, обрабатывая полученное сообщение, согласно информации о маршрутизации?

3 ответов

20 просмотров

Когда обязательно использование общего топика - необходимо строго упорядочить разные события Когда нельзя - требуется авторизация при чтении конкретного типа сообщения, а не групп сообщений В остальных случаях трейдофы между менеджментом большого количества сущностей-топиков, их связыванием со схемами и типами событий, разграничения потоков по нагрузке, группировке по потребительским сервисам и т.п. Основное на что смотреть - как много лишних данных будет читать консумер, если незначительно то ок, если большой процент скипать, то стоит выделить такие события в отдельный топик и снять доп нагрузку с сервиса, который будет просто впустую читать сообщения и откидывать их

Как правило, это само собой получается в процессе анализа, какие агрегаты и bounded contexts какие сообщения публикуют, насколько "полные" вы планируете сообщения и насколько там принципиален порядок. Проведите Event Storming например! Что подразумевается под маршрутизацией я даже боюсь пытаться угадывать, но считайте что ваши сообщения - броадкаст. Если смотреть на пример "товары" (видимо описания) и "цены на товары" - это, очевидно, отдельные контексты и меняются они независимо (надеюсь), как и складские остатки по данным товарам, и очевидно что это разные топики. Но, вероятно, все сообщения об изменении описаний и характеристик товаров логично держать в одном топике, потому что порядок (для каждой конкретной сущности) имеет значение (NB! задумайтесь о ключе партиционирования - верноятно, это типа `articleUuid`)

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта