Size: a a a

Scala User Group

2021 March 06

i

ilya in Scala User Group
выяснилось это конечно в кафке
источник

ZM

ZLoyer Matveev in Scala User Group
Oleg ℕizhnik
ну почти неопционально, потому что это единственный способ достичь совместимости между версиями
как-то натыкался на любопытный поинт про сериализацию - когда требуется повышенная надежность в данных, то стоит отдавать предпочтение форматам, которые позволяют разобрать содержимое без сторонних сервисов и систем (мол такое уже бывало в гос структурах с данными 30-40летней давности)
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну это валидный пойнт для системы, где между сериализацией и десериализацией может пройти значительное время
источник

AK

Aleksey Kislitsa in Scala User Group
Oleg ℕizhnik
в общем, кажется, что бинарные штуки основанные на явном тегировании типа протобафа или трифта более straightforward решение для RPC
А для типизированных сообщений посылаемых через ту же кафку?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
для RPC, где мы считаем, что запрос ответ происходят в рамках фиксированного окна, не превышающего часа, выводы могут поменяться
источник

ZM

ZLoyer Matveev in Scala User Group
я его упомянул, просто потому, что мне кажется совсем неочевидным

нелегко задуматься об этом, когда ты вначале проектирования
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aleksey Kislitsa
А для типизированных сообщений посылаемых через ту же кафку?
вот для кафки как раз мы имеем ситуацию, когда между сериализацией и десериализацией длительное время проходит
если где-то рядом лежит схема регистри, который может сообщить, с какого офсета пошла какая схема, возможно, и так и сяк пойдёт
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну это скатывается к этой ситуации фактически https://t.me/scala_ru/305139
источник

Oℕ

Oleg ℕizhnik in Scala User Group
если у вас кафка - это грубо говоря "буфер" для общения между сервисами - можно и без схема регистри
источник

AK

Aleksey Kislitsa in Scala User Group
ZLoyer Matveev
как-то натыкался на любопытный поинт про сериализацию - когда требуется повышенная надежность в данных, то стоит отдавать предпочтение форматам, которые позволяют разобрать содержимое без сторонних сервисов и систем (мол такое уже бывало в гос структурах с данными 30-40летней давности)
Это же кейс в ошибке обработки tcp пакета, когда отловить долго не могли, так как протокол бинарный и потеряный бит на определенном железе создавал гейзенбаг
источник

Oℕ

Oleg ℕizhnik in Scala User Group
потому что в отличие от систем анализа данных, обычный сервис, читая из кафки, может обработать фиксированный набор полей, и ему хватит гарантии, что они там есть, которую можно и без регистри условно обеспечить
источник

AK

Aleksey Kislitsa in Scala User Group
Oleg ℕizhnik
потому что в отличие от систем анализа данных, обычный сервис, читая из кафки, может обработать фиксированный набор полей, и ему хватит гарантии, что они там есть, которую можно и без регистри условно обеспечить
В общем да, но ИМХО, что если описание АПИ реализованных сервисом будет в доступном кому надо реестре то это упростит разработку и сопровождение. Как proto для протобафа или WSDL, взял, и сгенерил сериализатор и используешь его в создании новых сервисов.
Хотя может я не вижу явных граблей.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
никто не спорит, если вы наладите такой сиай, все только спасибо скажут
источник

λ

λoλcat in Scala User Group
Oleg ℕizhnik
Мы использовали Avro4s, остались немного злыми и недовольными
Vulkan
источник

AK

Aleksey Kislitsa in Scala User Group
Oleg ℕizhnik
в общем, кажется, что бинарные штуки основанные на явном тегировании типа протобафа или трифта более straightforward решение для RPC
Вот второй вопрос нарисовался... или четвертый уже на ту же почти тему.
Трифт как принято готовить, из сорцов собирать или пакетным манагером ставить системный?
Пытаюсь из сорцов собрать, так ему то руби слишком новый, то хаскель без пакетов каких то, то пхп композер требует. Это получается надо явно отрубить все ненужное что бы собрать только для нужных языков, а мне это питон, джава (скалы то нет) и го
источник

Oℕ

Oleg ℕizhnik in Scala User Group
я на этот вопрос не отвечу, подождём других экспертов
источник

EK

Evgenii Kuznetcov in Scala User Group
Aleksey Kislitsa
Вот второй вопрос нарисовался... или четвертый уже на ту же почти тему.
Трифт как принято готовить, из сорцов собирать или пакетным манагером ставить системный?
Пытаюсь из сорцов собрать, так ему то руби слишком новый, то хаскель без пакетов каких то, то пхп композер требует. Это получается надо явно отрубить все ненужное что бы собрать только для нужных языков, а мне это питон, джава (скалы то нет) и го
Еще есть вариант использовать плагины билд системы. Генерируем java классы в градле по avro. Для трифта, вроде, тоже есть плагин.
источник

AK

Aleksey Kislitsa in Scala User Group
Evgenii Kuznetcov
Еще есть вариант использовать плагины билд системы. Генерируем java классы в градле по avro. Для трифта, вроде, тоже есть плагин.
Мерси, попробую однако 😺
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Трифт очень активно использовался твиттером
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Так что у них и для скалы генераторы искать нужно
источник