Size: a a a

Архитектура ИТ-решений

2020 January 22

Ms

Mutko says in Архитектура ИТ-решений
Andrei Soloschak
Я не Вам писал, а Геннадию. Речь шла про Event Sourcing, если что. Надеюсь Вы знаете, что это?
Нет, я из пещеры вылез. ES с 2015 баззвордят
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Базвордили, как Вы говорите,  про это гораздо раньше. Вопрос в том, что до сих пор люди не совсем понимают суть, если предлагают хранить агрегаты в Kafka
источник

Ms

Mutko says in Архитектура ИТ-решений
И в чем же проблема? Kafka умеет в compact таких сущностей при достижения ретеншен лимита
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Mutko says
Вопрос в том, как кафка хранит оффсет в партишене + что происходит при at-least-once с двумя конкурирующими за партишен консьюмерами
Ээ, в кафке консьюмеры за партишн вообще не конкурируют...
источник

Ms

Mutko says in Архитектура ИТ-решений
Phil Delgyado
Ээ, в кафке консьюмеры за партишн вообще не конкурируют...
То есть вы считаете что больше одного не подключить?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
На один партишн - один консьмер в группе, а как ещё? Групп может быть много, если нужно, но зачем
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Mutko says
И в чем же проблема? Kafka умеет в compact таких сущностей при достижения ретеншен лимита
Открываем любую статью на эту тему. Вот первое что попалось под руку:
https://dyllanwli.github.io/2019/02/10/Using-Kafka-as-a-Event-Store/
источник

Ms

Mutko says in Архитектура ИТ-решений
Andrei Soloschak
Открываем любую статью на эту тему. Вот первое что попалось под руку:
https://dyllanwli.github.io/2019/02/10/Using-Kafka-as-a-Event-Store/
Не совсем понимаю, что именно должно смущать?
источник

Ms

Mutko says in Архитектура ИТ-решений
Phil Delgyado
На один партишн - один консьмер в группе, а как ещё? Групп может быть много, если нужно, но зачем
Как раз ловить такого вида сценарии
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Mutko says
Не совсем понимаю, что именно должно смущать?
Во-первых непонятно почему именно Kafka. Ее единственное преимущество это удобство построения проекций. Но для этого необязательно хранить в ней сами агрегаты.
Тут может быть масса проблем, начиная с ограничений количество топиков (а нужно хранить миллионы или миллиарды агрегатов, каждый имеет свой стрим), отсутствие optimistic concurrency и тд. Статью пересказывать не буду.
источник

Ms

Mutko says in Архитектура ИТ-решений
Andrei Soloschak
Во-первых непонятно почему именно Kafka. Ее единственное преимущество это удобство построения проекций. Но для этого необязательно хранить в ней сами агрегаты.
Тут может быть масса проблем, начиная с ограничений количество топиков (а нужно хранить миллионы или миллиарды агрегатов, каждый имеет свой стрим), отсутствие optimistic concurrency и тд. Статью пересказывать не буду.
Хорошо, что для вас агрегат? Можно пример?
источник

AS

Andrei Soloschak in Архитектура ИТ-решений
Mutko says
Хорошо, что для вас агрегат? Можно пример?
То есть вы сначала сказали, что все знаете, а теперь спрашиваете, что такое агрегат.
источник

Ms

Mutko says in Архитектура ИТ-решений
Я тоже не топлю за кафку, это довольно дорогое удовольствие в куа/стейдже/продакшене+сандбоксе
источник

Ms

Mutko says in Архитектура ИТ-решений
Просто миллиарды агрегатов не могу себе представить
источник

Ms

Mutko says in Архитектура ИТ-решений
Возьмем например систему покупки билетов
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Andrei Soloschak
Во-первых непонятно почему именно Kafka. Ее единственное преимущество это удобство построения проекций. Но для этого необязательно хранить в ней сами агрегаты.
Тут может быть масса проблем, начиная с ограничений количество топиков (а нужно хранить миллионы или миллиарды агрегатов, каждый имеет свой стрим), отсутствие optimistic concurrency и тд. Статью пересказывать не буду.
Ээ? А кто предлагает хранить в кафке агрегаты? Входящий поток событий и хватит. С возможностью переповтора.
источник

Ms

Mutko says in Архитектура ИТ-решений
Агрегат — состояние заказа, оно в happy path последовательно меняется от “ожидает оплаты” до “отправлен инвойс”
источник

ВБ

Витя Б. in Архитектура ИТ-решений
Видел несколько решений, когда кафка использовалась как промежуточный накопитель сырых данных из источников, в которых хранить эти данные не представляется возможным (например, CDC из OLTP-системы, или IoT-источники), но конечный потребитель этих данных ещё не готов их принимать
И да, в одном случае ретеншен в кафке был больше года
После запуска приемника исторические данные были перегружены в него, история есть, работающий процесс загрузки на стороне приемника есть, практически счастье
источник

Ms

Mutko says in Архитектура ИТ-решений
События (иммутабельные) поступают в хронологическом порядке в кафку
источник

Ms

Mutko says in Архитектура ИТ-решений
Нужно откатить? Шли новое событие отмена заказа
источник