Size: a a a

Scala User Group

2021 March 06

EK

Evgenii Kuznetcov in Scala User Group
Oleg ℕizhnik
Потому что схема регистри не поддерживала его
Вопрос к топик стартеру, он, вроде, не огласил предпочтений
источник

Oℕ

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

Oℕ

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

АМ

Азамат Макарчук... in Scala User Group
Oleg ℕizhnik
Поэтому каждый раз, когда размер не имел значения, использовали json
А схему где-то описывали ? Или у вас монорепа ?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Азамат Макарчук
А схему где-то описывали ? Или у вас монорепа ?
Схема автоматически генерируется либой
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Конфлюенс кафка со Схема регистри просто проверяет совместимость при подключении к топику
источник

Oℕ

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

Aλeχ Λisenκo in Scala User Group
Oleg ℕizhnik
Схема автоматически генерируется либой
Какой?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Aλeχ Λisenκo
Какой?
источник

AK

Aleksey Kislitsa in Scala User Group
Evgenii Kuznetcov
Вопрос к топик стартеру, он, вроде, не огласил предпочтений
Если топик стартер про меня, то просто топик стартер на стадии выбора. предпочтения просты, что то, что не слишком бойлерплейтно и при этом позволит описать API и использовать это описание в  реализации. Protobuf не использовал всерьез. WSDL приходилось больше использовать. Слышал протобуф критикуют в скала мире, но похоже все имеет свою минуту славы.
источник

EB

Eugene Bosiakov in Scala User Group
Aleksey Kislitsa
В продолжение моего вопроса о RabbitMQ, посмотрел я на Avro? понравилось, что описание в текстовом формате можно скормить сериализатору и получить сериализатор/десериализатор.
Пока пробовал Goверсию, но в принципе для Pet проекта вполне подойдет.
Интересно на серьезных проектах Avro как используют?
Вот с Thrift как то не срослось. Вроде система потенциально должна быть помощнее, вначале задаешь описание API потом генеришь код, который используешь в своем коде.
Но блин тот компайлер, который ставить APT в дебиане, не работает минимум с той версией Go, что я пробовал. Попытка собрать свежий приводит то к ругани на ruby, то на haskell.
Судя по выхлопу конфгуратора с ключем —help надо вручную отключать все ненужное, чтоб сгенерить код для того, что нужно.
Авро на проде много лет, все топ, но правда прилага не на жвм
источник

EK

Evgenii Kuznetcov in Scala User Group
Aleksey Kislitsa
Если топик стартер про меня, то просто топик стартер на стадии выбора. предпочтения просты, что то, что не слишком бойлерплейтно и при этом позволит описать API и использовать это описание в  реализации. Protobuf не использовал всерьез. WSDL приходилось больше использовать. Слышал протобуф критикуют в скала мире, но похоже все имеет свою минуту славы.
Какой-то боилерплэйт будет всегда: есть impedance mismatch между теми, кто пишет эти либы и теми, кто использует ФП. Я бы просто выбрал самый поддерживаемый и смирился. В этом плане протобаф выглядит норм и открывает также экосистему grpc.
источник

ZM

ZLoyer Matveev in Scala User Group
Aleksey Kislitsa
Если топик стартер про меня, то просто топик стартер на стадии выбора. предпочтения просты, что то, что не слишком бойлерплейтно и при этом позволит описать API и использовать это описание в  реализации. Protobuf не использовал всерьез. WSDL приходилось больше использовать. Слышал протобуф критикуют в скала мире, но похоже все имеет свою минуту славы.
прото3 или авро

страдать со всем из этих, выбор либо из того под какие стэки собирать, либо исходя из требований инфры существующей (например, если обязательно использовать конфлюэнтовский реестр схем)

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

ZM

ZLoyer Matveev in Scala User Group
если это какое-то апи, то скорее путь к протобафу и жрпц
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Eugene Bosiakov
Авро на проде много лет, все топ, но правда прилага не на жвм
[читать до конца]
источник

AK

Aleksey Kislitsa in Scala User Group
Evgenii Kuznetcov
Какой-то боилерплэйт будет всегда: есть impedance mismatch между теми, кто пишет эти либы и теми, кто использует ФП. Я бы просто выбрал самый поддерживаемый и смирился. В этом плане протобаф выглядит норм и открывает также экосистему grpc.
Я пока смотрю в сторону асинхронных сообщений.
источник

AK

Aleksey Kislitsa in Scala User Group
ZLoyer Matveev
прото3 или авро

страдать со всем из этих, выбор либо из того под какие стэки собирать, либо исходя из требований инфры существующей (например, если обязательно использовать конфлюэнтовский реестр схем)

есть другие варианты, но с ними надо аккуратнее, потому что либ под скалу либо нет, либо нет для других стэков
Реестр схем это очень даже неплохо. Просто я волшебных слов для гуглежа про реестры схем не нашел пока. Погуглю за конфлюентовский реестр.
источник

ZM

ZLoyer Matveev in Scala User Group
Aleksey Kislitsa
Реестр схем это очень даже неплохо. Просто я волшебных слов для гуглежа про реестры схем не нашел пока. Погуглю за конфлюентовский реестр.
он только для авро, есть другие, которые поддерживают больше протоколов (но не без своих болячек)
источник

AK

Aleksey Kislitsa in Scala User Group
ZLoyer Matveev
если это какое-то апи, то скорее путь к протобафу и жрпц
Не совсем, АПИ может быть реализовано или через обмен сообщениями или через что то РЕСТ подобное. Я имею ввиду не реализацию апи, а определение, как бизнес-контракт, что сервис делает и как к нему за этим обращаться.
источник

i

ilya in Scala User Group
ZLoyer Matveev
он только для авро, есть другие, которые поддерживают больше протоколов (но не без своих болячек)
Вроде новые конфлюент версии поддерживают протобаф и json-схемы
источник