Size: a a a

2021 March 18

AK

Anton K. in symfony
Павел Г.
Я тут просто как то как раз эту тему поднимал,  и мне говорили что сразу в бас - идея не очень :) лучше сначала в обычый диспатчер а потом уже в бас - больше гибкости
во, я так делаю. топчик
источник

КГ

Константин Грачев... in symfony
Anton K.
почему бы не сделать все необьходимые изменения в бд сразу, в рамках одного запроса, а не догоняться потом в евентах, которые могут выполниться после
Например потому что ряд операцией требует времени, и пользователю который ждёт ответ от сервера нет никакого смысла дожидаться их?
Например потому что надо сходить во внешний сервис, и если сервис не отвечает, то повторить запрос через 5-10-20-40-60с?
источник

ПГ

Павел Г. in symfony
Anton K.
во, я так делаю. топчик
Тут просто такой момент, что кейсов мало с таким исходом. И выходит часто что ивенты перегоняемв  бас -  и больше лишнего кода. Чисто из ивента в бас гоним, вот и вся реализация.
источник

ПГ

Павел Г. in symfony
Константин Грачев
Например потому что ряд операцией требует времени, и пользователю который ждёт ответ от сервера нет никакого смысла дожидаться их?
Например потому что надо сходить во внешний сервис, и если сервис не отвечает, то повторить запрос через 5-10-20-40-60с?
Такие операции кидаются потом в бас. А которые нужны синхронно - нет. Больше гибкости, но и больше грязи :(
источник

AD

Andrey Dembitskyi in symfony
Anton K.
почему бы не сделать все необьходимые изменения в бд сразу, в рамках одного запроса, а не догоняться потом в евентах, которые могут выполниться после
потому что:
1) реакция на событие может повлиять на результат (сломанная транзакция)
2) влияет на время выдачи ответа, когда реакция не обязана сразу отработать (иначе это часть основной операции)
3) далеко не всегда будет возможность ограничится тем же хранилищем - тебе понадобится отправить письмо и всё - нарушение консистентности наступает на пятки
источник

ПГ

Павел Г. in symfony
Andrey Dembitskyi
потому что:
1) реакция на событие может повлиять на результат (сломанная транзакция)
2) влияет на время выдачи ответа, когда реакция не обязана сразу отработать (иначе это часть основной операции)
3) далеко не всегда будет возможность ограничится тем же хранилищем - тебе понадобится отправить письмо и всё - нарушение консистентности наступает на пятки
Почему основная операция (которая в запросе) не может быть как совокупность агрегатов/(чего угодно) которые общаются через ивенты?
источник

КГ

Константин Грачев... in symfony
Павел Г.
Такие операции кидаются потом в бас. А которые нужны синхронно - нет. Больше гибкости, но и больше грязи :(
Я не оч понимаю как вы там это готовите, у меня когда messageBus появился с диспетчером симфы пользоваться перестал
источник

AK

Anton K. in symfony
Andrey Dembitskyi
потому что:
1) реакция на событие может повлиять на результат (сломанная транзакция)
2) влияет на время выдачи ответа, когда реакция не обязана сразу отработать (иначе это часть основной операции)
3) далеко не всегда будет возможность ограничится тем же хранилищем - тебе понадобится отправить письмо и всё - нарушение консистентности наступает на пятки
какое письмо то в транзакции, камон?
источник

AK

Anton K. in symfony
письмо да, это уже постфактум, а если ты делаешь логгирование жизненных циклов сущности? не проще ли сделать это в одной транзакции? как минимум надежнее и данные консистентны всегда
источник

AK

Anton K. in symfony
ваще мне понравился паттерн domain events
источник

КГ

Константин Грачев... in symfony
Anton K.
письмо да, это уже постфактум, а если ты делаешь логгирование жизненных циклов сущности? не проще ли сделать это в одной транзакции? как минимум надежнее и данные консистентны всегда
А причём тут логирование и доменные ивенты?
источник

AK

Anton K. in symfony
логгирование в таблицу бд
когда сущность была создана, когда удалялась, когда изменялась
источник

ПГ

Павел Г. in symfony
Anton K.
логгирование в таблицу бд
когда сущность была создана, когда удалялась, когда изменялась
Ну это можно и в бас, тут синхронность не важна
источник

КГ

Константин Грачев... in symfony
Anton K.
логгирование в таблицу бд
когда сущность была создана, когда удалялась, когда изменялась
Для этого доменные ивенты не нужны
источник

AK

Anton K. in symfony
а нафиг в бас, если я сразу в транзакции все эти данные запишу
источник

ПГ

Павел Г. in symfony
Константин Грачев
Для этого доменные ивенты не нужны
Да и это тоже кстати) просто исторяи сущности как релейшен
источник

КГ

Константин Грачев... in symfony
Точнее EntityUpdated и EntityDeleted это не доменные ивенты
источник

AK

Anton K. in symfony
мож мы по-разному понимаем доменные эвенты.
источник

ПГ

Павел Г. in symfony
Константин Грачев
Точнее EntityUpdated и EntityDeleted это не доменные ивенты
А чьи?
источник

AK

Anton K. in symfony
источник