Size: a a a

2020 January 16

RS

Roman Sharkov in pro.kafka
Alexander Kovalev
я практик, но хорошо
берите любой ин мемори сторадж со стримингом и персистентным бэкендом
а зачем in-memory то?
источник

RS

Roman Sharkov in pro.kafka
Николай Ижиков
Тогда тебе надо четко знать, что удалось записать в кафку а что не удалось.

Но это все равно от всех случаев, скорее всего, не спасет и контроль double delivery придется делать на стороне приемника
разумеется
источник

RS

Roman Sharkov in pro.kafka
Николай Ижиков
Тогда тебе надо четко знать, что удалось записать в кафку а что не удалось.

Но это все равно от всех случаев, скорее всего, не спасет и контроль double delivery придется делать на стороне приемника
мы можем получить от кафки подтверждение того что наши логи были получены и надёжно сохранены?
источник

NR

Nikita Ryanov in pro.kafka
А чем все-таки плох вариант с бд и каким-нибудь Kafka-jdbc или даже debezium, как уже предлагали выше?
источник

NR

Nikita Ryanov in pro.kafka
Roman Sharkov
мы можем получить от кафки подтверждение того что наши логи были получены и надёжно сохранены?
У реббита есть такое, у кафки, насколько мне известно, нет механизма оповещения продюсеров о получении консюмерами  сообщений
источник

RS

Roman Sharkov in pro.kafka
Nikita Ryanov
А чем все-таки плох вариант с бд и каким-нибудь Kafka-jdbc или даже debezium, как уже предлагали выше?
ещё раз: tight coupling между конкретной бд и перекладыванием отвественности ведения event log’а на микросервис, который только бизнес логикой должен заниматься а не тем, как event log вести, сохранять и отправлять
источник

AK

Alexander Kovalev in pro.kafka
Roman Sharkov
а зачем in-memory то?
на практике их проще делать сайдкарами + есть поддержка стримингов в них
у хейзела напрямую в кафку была вроде
можно со стороны сервиса писать в него, а там уж он сам когда нибудь откинет в кафку
источник

AK

Alexander Kovalev in pro.kafka
Roman Sharkov
ещё раз: tight coupling между конкретной бд и перекладыванием отвественности ведения event log’а на микросервис, который только бизнес логикой должен заниматься а не тем, как event log вести, сохранять и отправлять
ну, лог с базы как раз и тулзой делать можно, а не сервисом
источник

RS

Roman Sharkov in pro.kafka
Alexander Kovalev
на практике их проще делать сайдкарами + есть поддержка стримингов в них
у хейзела напрямую в кафку была вроде
можно со стороны сервиса писать в него, а там уж он сам когда нибудь откинет в кафку
всё-равно писать придётся не напрямую в бд из кода микросервиса а через некий side-car посредник
источник

НИ

Николай Ижиков in pro.kafka
с точки зрения сложности разработки и сопровождения использование in memory грида значительный overkill
источник

RS

Roman Sharkov in pro.kafka
Alexander Kovalev
ну, лог с базы как раз и тулзой делать можно, а не сервисом
нам не лог с базы нужен, а event log 🙂 логические изменения в состоянии приложения, а не изменения таблиц и т.п.
источник

AK

Alexander Kovalev in pro.kafka
Николай Ижиков
с точки зрения сложности разработки и сопровождения использование in memory грида значительный overkill
чем самописную проксю с персистентным стораджом в клауд нейтив мире? сомнительно
источник

AK

Alexander Kovalev in pro.kafka
emdedded со стораджем в диск делается за пять строчек
без кластера, который и не нужен
источник

NR

Nikita Ryanov in pro.kafka
Roman Sharkov
нам не лог с базы нужен, а event log 🙂 логические изменения в состоянии приложения, а не изменения таблиц и т.п.
В чем здесь принципиальная разница?
источник

NR

Nikita Ryanov in pro.kafka
У вас же каждое событие это какое-то состояние? Или лишь его изменение?

Может я не верно понял
источник

IR

Ivan Rasikhin in pro.kafka
Roman Sharkov
мы можем получить от кафки подтверждение того что наши логи были получены и надёжно сохранены?
ack от брокера примерно оно и есть
источник

НИ

Николай Ижиков in pro.kafka
Alexander Kovalev
чем самописную проксю с персистентным стораджом в клауд нейтив мире? сомнительно
Может быть ты в курсе про дополнительные требования Романа. Но я про клауд и другое не слышал)

А в файлик локальный писать - да, это просто, что может быть проще?
источник

RS

Roman Sharkov in pro.kafka
Nikita Ryanov
В чем здесь принципиальная разница?
в том, что условный ROW_INSERT(table: users, values: {bla,foo,bar}) это не UserCreated{foo, bar}

я уже молчу про события, которые могут пораждать множество изменений в разных частях бд, которые тем не менее рассматриваются 1 логическим изменением состояния приложения

есть разница между WAL’ом бд и логическими логами самого приложения. Мы не хотим использовать implementation detail миксервиса как сыботия для других сервисов, ибо оно может меняться, а логические события это относительно простой протокол коммуникации

писать переводчик WAL->AppLogic неоправдано дорого, проще и безопаснее хранить бд (аггрегат) и лог отдельно
источник

НИ

Николай Ижиков in pro.kafka
Roman Sharkov
в том, что условный ROW_INSERT(table: users, values: {bla,foo,bar}) это не UserCreated{foo, bar}

я уже молчу про события, которые могут пораждать множество изменений в разных частях бд, которые тем не менее рассматриваются 1 логическим изменением состояния приложения

есть разница между WAL’ом бд и логическими логами самого приложения. Мы не хотим использовать implementation detail миксервиса как сыботия для других сервисов, ибо оно может меняться, а логические события это относительно простой протокол коммуникации

писать переводчик WAL->AppLogic неоправдано дорого, проще и безопаснее хранить бд (аггрегат) и лог отдельно
Если тебе нужно парсить события из БД, то в случае, к пример binlog’ов от mysql есть возможность группировать изменения произошедшие в одной транзакции.
источник

НИ

Николай Ижиков in pro.kafka
Знаю довольно большой и известный проект работающий на такой логике
источник