Size: a a a

2021 September 08

✨Basic_Instinct✨ in symfony
в ивенте ты в рилтайме сохраняешь данные, историю в очередь отправляешь
будет тебе и порядок истории, и не будет буксовать при сохранении двух разных транзакций
источник

✨Basic_Instinct✨ in symfony
чтобы узнать изменения, их нужно группировать не по id, а по дате и времени
источник

ЕК

Евгений Котов... in symfony
я наверное запутал немного) все ивенты через очередь работают, асинхронно
рассмотрим ситуацию - юзер зареган - модуль нотификаций подписан на это событие, ему достаточно айдишника чтоб отправить письмо с подтверждением
а вот истории например надо сохранить полный стейт
вот ради одной только истории не хочется заряжать во многие ивенты кучу данных
в "реалтайме" имел ввиду что все равно все асинхронное, просто в одном случае все почти мгновенно летает, а в случае истории можно не торопиться
если у меня будет 2 отдельных события, я их по идее смогу по разным очередям разнести
очередь с легкими ивентами должна быть шустрее, если в ней не будет половина сообщений жирным
источник

✨Basic_Instinct✨ in symfony
ну в принципе верно, важные отправляешь через транспорт с high приоритетом, другие менее важные с low
источник

✨Basic_Instinct✨ in symfony
вообще жирнота не столь важна, смотри приоритеты, тебе важнее отправить сообщение, или сохранить жирную историю, которая придет время и так сохраниться и понадобится завтра
источник

AM

Alex Mikhaylov in symfony
Приветствую, уважаемое сообщество
Многоуважаемое :) не сарказм
Замучался с дебагером, не пойму что происходит, гугление второй день не помогает. Может подскажите в чем прикол
Пытаюсь запустить отладку, а мне вываливает временный симфони файл,и не дебажет брекпоинты в проекте
где то натупил, не могу понять где

https://i.imgur.com/xZYk1b4.png
источник

ЕК

Евгений Котов... in symfony
важно чтоб работа системы не тормозилась из-за жирноты (т.к. жирных сообщений будет достаточное кол-во, хотя и не все-все существующие ивенты будут такими)
и важно историю сохранить)
наверное 2 ивента выкидывать норм подход
можно конечно нагородить что-то вроде dispatch(new Event(lightweightData, fullData)) и где то в middleware разделять на 2 сообщения и кидать в разные очереди 🤔
источник

ЕК

Евгений Котов... in symfony
но кажется я просто преждевременной оптимизацией страдаю
источник

VM

Volodymyr Melko in symfony
а жирные это сколько гигабайт?
источник

✨Basic_Instinct✨ in symfony
сча придет Сергей админ, и расскажет про жирные ивенты ))
источник

ЕК

Евгений Котов... in symfony
да вот скорее всего даже 1мб не наберется 😂 вроде пока нет никаких картинок и т.п., только текстовые данные
я просто только погружаюсь в event driven и опыта особо нет)
источник

VM

Volodymyr Melko in symfony
А зачем вообще так много данных через очереди гонять? Почему не положить данные в сторадж, а в ивент только ссылку или идентификатор?
источник

ЕК

Евгений Котов... in symfony
типа отдельно класть эту историю? ну вот идет у меня сохранение агрегата в бд, успешно, далее события летят
т.е. я могу исторические данные условно записать в отдельную табличку и в ивент добавить айдишник этой записи?
источник

VM

Volodymyr Melko in symfony
Ну если у тебя есть способ потом по айдишке инфу достать, тому кому она надо, то почему нет?
источник

ЕК

Евгений Котов... in symfony
интересная идея, не догадался как-то.. спасибо за мысль)
просто модулю истории не катит ссылка непосредственно на сам агрегат, когда история понадобится, агрегат 100500 раз изменится, данные протухнут
источник

ЕК

Евгений Котов... in symfony
кстати, а если у меня модули более-менее независимы, лучше глобальный модуль для истории иметь или все же каждый модуль пусть сам сохраняет и предоставляет свою историчную инфу?) чет мне кажется второе правильнее и лучше 🤔
источник

✨Basic_Instinct✨ in symfony
я сохраняю каждую в свою, зачем мне история одного агрегата в истории другого, данных меньше, чтение легче если история разрастается
источник

✨Basic_Instinct✨ in symfony
видимо имелось ввиду, что ты по id из очереди можешь получить измененные данные из хранилища, и сохранить её в историю
источник

ЕК

Евгений Котов... in symfony
а как я пойму какие измененные? в истории хочется иметь инфу типа "было-стало" (не везде, но где-то обязательно)
источник

✨Basic_Instinct✨ in symfony
ну у тебя будет же вся история в хранилище, и что было, и что стало
источник