@scala_ru

Страница 1270 из 1499
Alexander
08.02.2018
16:06:31
его футура не завершается

Р
08.02.2018
16:08:10
А супервайзор печатающий exception'ы есть?

Alexander
08.02.2018
16:11:08
не уверен, но тело runFoldAsync продолжает вызываться успешно

Р
08.02.2018
16:14:54
а с чем оно вызывается если complete пришёл уже?

Google
Р
08.02.2018
16:17:04
в смысле, что внутри?

Alexander
08.02.2018
16:19:58
2.5.7?
2.5.9

в смысле, что внутри?
то, что через queue.offer продолжает слаться

Sergey
08.02.2018
16:25:26
ребят, кто со скала spb митапа, нашел кто интернет? пишу с помощью голубиной почты

Alexander
08.02.2018
16:27:40
Source.actorRef то же поведение, хм...

Aleksey
08.02.2018
16:33:38




Grigory
08.02.2018
16:39:23
Alexander
08.02.2018
16:39:34
дефолтный

Alexey
08.02.2018
16:45:05
Ну давай гист запускаемый.

Michael
08.02.2018
16:53:27
480p максимум - так задумано?

Igor
08.02.2018
16:56:54
Мы в лайфе https://www.youtube.com/c/ScalaRussia/live
Можно камеру зазумить, а то вообще код не видно?

Google
Kirill
08.02.2018
17:02:34
480 это полная беда (

Daniel
08.02.2018
17:07:42
@leammas в тему вчершнего разговора, немного маркетинга от лайбенда



Nikita
08.02.2018
17:08:41
мда, код вообще не видно =/

Nick
08.02.2018
17:15:17
Фомкин специально открыл Королёв

Alexander
08.02.2018
17:15:40
Ну давай гист запускаемый.
Простой вариант у меня заработал. Но у меня данные из Source проходят через Flow, я попробовал это как-то сэмулировать в гисте. Вот такой вариант продолжает бесконечно работать, хотя complete() вызывается https://gist.github.com/Tvaroh/93236714ca989e260d51ce00206510c6

Daniel
08.02.2018
17:17:05
Простой вариант у меня заработал. Но у меня данные из Source проходят через Flow, я попробовал это как-то сэмулировать в гисте. Вот такой вариант продолжает бесконечно работать, хотя complete() вызывается https://gist.github.com/Tvaroh/93236714ca989e260d51ce00206510c6
у меня когда-то было подобное но я сам накосяпорил в кастомном стейдже и стрим не закрывался смотрел отдельно каждый стейдж на предмет кто завершился, а кто нет

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

Alexander
08.02.2018
17:18:46
обновил гист (ошибка закралась)

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

Alexey
08.02.2018
17:40:47
Простой вариант у меня заработал. Но у меня данные из Source проходят через Flow, я попробовал это как-то сэмулировать в гисте. Вот такой вариант продолжает бесконечно работать, хотя complete() вызывается https://gist.github.com/Tvaroh/93236714ca989e260d51ce00206510c6
при первом рассмотрении вот что сразу могу сказать - нельзя так возвращать пару future и source. source - переиспользуемая штука, а фьюча твоя глобальная на все стримы запущенные с этого сорса. нужно сначала runnablagraph слепить, потом его запускать, а потом оттуда вытаскивать материалзованные значения.

Alexander
08.02.2018
17:41:32
это понятно, такая фьюча используется только один раз

Alexey
08.02.2018
17:46:28
480 это полная беда (
Потом будут видосы в норм качестве

Alexey
08.02.2018
17:53:06
Alexander
08.02.2018
17:53:43
в общем я нашёл проблему, во flow через который идут данные проблемный GraphStage нашёлся, всем спасибо, буду его чинить

Daniel
08.02.2018
17:55:30
по следам лайтбендовского вебинара: https://github.com/lightbend/kafka-streams-scala https://github.com/lightbend/kafka-offset-monitor

Vladimir
08.02.2018
18:03:13
@leammas в тему вчершнего разговора, немного маркетинга от лайбенда
ага, я как раз наткнулся на цитатку As the leading online fashion retailer in Europe, Zalando uses Kafka as an ESB (Enterprise Service Bus), which helps us in transitioning from a monolithic to a micro services architecture.

Daniel
08.02.2018
18:04:33
интересно, у них есть что-то для сложных вещей? например откат размазанной операции

Alexey
08.02.2018
18:06:00
я думаю там просто антиоперация и все

Vladimir
08.02.2018
18:06:07
я думаю, каждый кейс индивидуальненько делается, если компенсирующее действие возможно

Google
Vladimir
08.02.2018
18:06:33
пробовал абстракцию написать, но там столько тайп-параметров получается, что проще заново каждый раз

Daniel
08.02.2018
18:10:20
сообразить сложновато навскидку надо заняться моделированием например, такой момент - сломаться может в любом месте 1) нужно поймать поломку 2) сгенерировать ролбэк из любого участка 3) ролбэк может идти просто в обратном порядке и тогда нужно построить соответствующий пайплайн помимо основного корректного

выглядит... энтерпрайзненько

Vladimir
08.02.2018
18:13:16
cosaga pattern %)

Andrey
08.02.2018
18:14:28
выглядит... энтерпрайзненько
Что тут интерпрайзного? Пом норм

Daniel
08.02.2018
18:15:29
норм (вроде бы), но большая обвеска получается

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

Andrey
08.02.2018
18:16:29
С event sourcing подходом оно естественным образом так выходит при обнаружении конфликта

Daniel
08.02.2018
18:17:47
ну вот мой абстрактный пример выше, где ивент проходит через несколько систем, и если сломалось где-то, то надо откатить все как это решается?

Aleksey
08.02.2018
18:18:11
На митапе сейчас такой пожар что обои отклеиваются.



Andrey
08.02.2018
18:18:26
Все системы должны уметь реагировать на такие события, которые так же разойдутся везде

Митко Соловец?
08.02.2018
18:18:34
либо долбят до тех пор, пока не будет в итоге согласовано

Andrey
08.02.2018
18:20:23
Я в алишечке это наблюдал. Купил какую то хрень, сняли деньги, а потом пришло письмо, что сорян, мол аут оф сток, бабло вернем в течении недели.

Вот компенсационное действие откатило все транзакции. Вернее компенсировало

Vladimir
08.02.2018
18:21:08
это классно выглядит, если действий 1-2 и ясно как откатывать

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

Daniel
08.02.2018
18:21:39
вот как решить эти вопросы? действительно строить еще одни пайплайны для отката?

Google
Daniel
08.02.2018
18:21:39
сообразить сложновато навскидку надо заняться моделированием например, такой момент - сломаться может в любом месте 1) нужно поймать поломку 2) сгенерировать ролбэк из любого участка 3) ролбэк может идти просто в обратном порядке и тогда нужно построить соответствующий пайплайн помимо основного корректного

Andrey
08.02.2018
18:21:46
Ну извините, чем выше связаность сервисов, тем больше проблем

Daniel
08.02.2018
18:22:13
это распределенная транзакция, либо руками резолвят
на ивент сорсинге распределенная транзакция как будет выглядеть?

кто-то должен следить опять же за её исполнением и таймаутами

Митко Соловец?
08.02.2018
18:23:26
эту тему сам начал недавно ресерчить

говорят проще

это решается

Daniel
08.02.2018
18:23:52
Ну извините, чем выше связаность сервисов, тем больше проблем
проблемы видны, интересны способы их решения либо есть какие-то практики и технологии неизвестные мне, либо все решается вот так в лоб рутинно

Daniyar
08.02.2018
18:24:03
/stat@combot

Combot
08.02.2018
18:24:04
combot.org/chat/-1001034178083

Andrey
08.02.2018
18:26:16
проблемы видны, интересны способы их решения либо есть какие-то практики и технологии неизвестные мне, либо все решается вот так в лоб рутинно
Это сложный проход, надо понимать это. Мы реализовали систему с использованием cqrs+es, но механизм резолва конфликтов не дошел до прода. Решили без него, может дойдет когда то. Конкретно для решения такой проблемы в рамках 1го сервиса, который распределен и возможны конфликты - мы спрототипировали резолвер конфликтов основанный на CRDT

Если говорить о нескольких системах, то это выглядит примерно так же, но появляется некий транзактор, который следит за исполнением транзакций в неск системах. Это уже все только в теории проектировалось

Но скажу вам так, если появляются распределенные транзакции, то пришло время сесть и подумать, что у вас пошло не так)

Nick
08.02.2018
18:27:51
Ребята

Заберите Олега

Daniel
08.02.2018
18:28:10
Заберите Олега
сам вернется

Alexey
08.02.2018
18:29:11
Я вижу отчаяние в глазах людей

Nick
08.02.2018
18:29:13
Лучше давайте про водку

Google
Nick
08.02.2018
18:29:38
Кривда по-моему умер

Andrey
08.02.2018
18:29:41
Основание одно - очень высокая сложность, и их часто можно избежать

Alex
08.02.2018
18:29:49
Да вроде бы ничего сложного, после того, как переключились в скалу с дотти.

первую часть я не догнал)

Daniel
08.02.2018
18:32:31
Моноиды в помощь ?
ну с настолько большой высоты я понимаю суть crdt) это не помогает понять применение к проблеме но за направление спасибо

Daniel
08.02.2018
18:33:26
с внешними уже ничего не сделаешь, это мир без твоего контроля (почти)

Andrey
08.02.2018
18:37:37
ну с настолько большой высоты я понимаю суть crdt) это не помогает понять применение к проблеме но за направление спасибо
Касаемо конкретного примера, у нас есть персистент акторы, которые представляют некоторые заявки. Они умеют работать в параллель и потом с помощью crdt мержить логи событий. Если смержить нельзя принимается решение о посылке команды на переход заявки в определенный статус, в зависимости от текущего состояния. В том числе отправка сообщений во внешние системы, что бы это учли.

Но тут пипец скока нюансов

Alex
08.02.2018
18:44:05
Alexey
08.02.2018
18:44:35
А что там с Олегом было?

Daniel
08.02.2018
18:46:19
как обычно подпалил мозги

Alex
08.02.2018
18:46:40
были тайплевел дсл на дотти, на имплиситах и макросах

Страница 1270 из 1499