Я изучаю множество общих способов разработки или создания разработчиками приложений на основе домена (все еще пытается понять концепцию в целом). Некоторые из примеров, которые я видел, включали использование событий через агрегатор событий. Мне понравилась концепция, потому что она действительно поддерживает разные элементы/домены приложения.Обработка ошибки агрегатора событий с откатом
У меня есть проблема: как вы откатываете операцию в случае ошибки?
Например:
Скажем, у меня есть приложение, которое имеет порядок, чтобы сохранить порядок в базу данных, а также сохранить копию приказа в формате PDF на CMS. Приложение запускает событие, созданное новым заказом, и служба pdf, которая подписывается на это событие, сохраняет PDF-файл. Между тем при совершении изменения заказа в базу данных генерируется исключение. Проблема в том, что pdf был сохранен, но их не соответствует записи базы данных.
Должен ли я кэшировать ранее обработанные события и запускать новое событие ошибки, которое обращается к кешу для операций «отменить»? Используйте что-то вроде шаблона команды для этого?
Или ... это агрегатор событий, который не является хорошим примером для этого.
Редактировать
Я начинаю думать, что, может быть, события должны быть использованы для менее «критически важных» элементов, таких как по электронной почте и регистрации.
Моя первоначальная мысль заключалась в ограничении зависимостей с использованием шаблона агрегатора событий.
Помните, что вы также можете использовать события в памяти; искать Уди Дахан Домен События Спасение. – JefClaes