Size: a a a

2020 April 12

h

humanoid in pro.kafka
Иван Федоров
какую практическую цель преследуешь?
Не обрабатывать событие в подписчике два раза, а только строго один.
источник

ИФ

Иван Федоров in pro.kafka
А что за ситуация, что тебе более одного раза обрабатывать приходится?
источник

h

humanoid in pro.kafka
Иван Федоров
А что за ситуация, что тебе более одного раза обрабатывать приходится?
Упал подписчик до ack для кафки, но уже после записи в бд. В результате будет повтор и от кафки и подпичик запшет второй раз в бд, а мне это не нужно
источник

h

humanoid in pro.kafka
Бизнес операция по своей сути НЕ идемподентна, поэтому нельзя два раза делать запись.
источник

ИФ

Иван Федоров in pro.kafka
ну чекай по офсету.
источник

ИФ

Иван Федоров in pro.kafka
ну или делай больше подписчиков
источник

h

humanoid in pro.kafka
Иван Федоров
ну чекай по офсету.
Мне было интересно узнать именно опыт людей, кто такое уже делал.
Так вцелом одно решение я уже описал, это как раз атомарная запись оффсета вместе с результатом
источник

VG

Vik Gamov in pro.kafka
humanoid
Мне было интересно узнать именно опыт людей, кто такое уже делал.
Так вцелом одно решение я уже описал, это как раз атомарная запись оффсета вместе с результатом
Не надо писать и в кафку и в базу. Кафка умеет атомарного оффсет с результатом писать. А если надо сохранять с базу старой про Outbox
источник

h

humanoid in pro.kafka
Vik Gamov
Не надо писать и в кафку и в базу. Кафка умеет атомарного оффсет с результатом писать. А если надо сохранять с базу старой про Outbox
Я не пишу и в кафку и в базу. У меня из кафки приходит сообщение, и мне его нужно обработать и результат обработку записать в базу. Но сделать это только один раз.
источник

h

humanoid in pro.kafka
Vik Gamov
Не надо писать и в кафку и в базу. Кафка умеет атомарного оффсет с результатом писать. А если надо сохранять с базу старой про Outbox
Outbox это же паттерн про флоу: база -> брокер
источник

ИФ

Иван Федоров in pro.kafka
humanoid
Я не пишу и в кафку и в базу. У меня из кафки приходит сообщение, и мне его нужно обработать и результат обработку записать в базу. Но сделать это только один раз.
Дык может делать коммит после обработки сообщения?
источник

VG

Vik Gamov in pro.kafka
humanoid
Я не пишу и в кафку и в базу. У меня из кафки приходит сообщение, и мне его нужно обработать и результат обработку записать в базу. Но сделать это только один раз.
Пришло сообщение - обработал - результат записал в кафку.
А дальше хоть куда
источник

h

humanoid in pro.kafka
Vik Gamov
Пришло сообщение - обработал - результат записал в кафку.
А дальше хоть куда
Ну там не получится, агрегат лежит в базе, я меняю его при получении сообщения от кафки.
источник

VG

Vik Gamov in pro.kafka
humanoid
Ну там не получится, агрегат лежит в базе, я меняю его при получении сообщения от кафки.
храни агрегат в Кафка стримз State store (он же в будет в топике), коннектором сбрасывай в базу
источник

VG

Vik Gamov in pro.kafka
А можно сразу сделать API поверх state store
источник

h

humanoid in pro.kafka
Иван Федоров
Дык может делать коммит после обработки сообщения?
Тогда сообщение может вообще не обработаться, если упадет до коммита и после ack для кафки
источник

h

humanoid in pro.kafka
Vik Gamov
храни агрегат в Кафка стримз State store (он же в будет в топике), коннектором сбрасывай в базу
Ну kafka не подходит как event store
источник

ИФ

Иван Федоров in pro.kafka
Так поднимай количество подписчиков
источник

h

humanoid in pro.kafka
источник

VG

Vik Gamov in pro.kafka
humanoid
Ну kafka не подходит как event store
Это кто сказал?
источник