Является ли использование Symfony Messenger в качестве динамического конвейера злоупотреблением им?
Я не использовал Symfony Messenger, кроме нескольких простых тестов. Я думаю, что я понял концепцию в целом (имея сообщения и специальные обработчики для них, давая шине мое сообщение и позволяя ей найти правильный обработчик для работы с ним), но в настоящее время интересуюсь, имеет ли смысл использовать Messenger и для моей проблемы или если я в основном злоупотребляю этим.
В общем, проблема заключается в том, что я передаю данные в свою систему, позволяя называть их соединителями, которые в основном подключаются к различным системам хранения данных, таким как, например, база данных, файл CSV, ... Затем данные помещаются в структурированный объект, который будет передан вдоль конвейера, где он может быть отфильтрован, преобразован, кэширован - как правило, изменен. Каждый из этих этапов в конвейере - это, по сути, промежуточное программное обеспечение, которое может иметь параметры, и в конце есть выходной этап, который сериализует данные, например, в JSON, CSV, или теоретически их можно поместить в другую систему хранения данных или файл.
Простой макет этих этапов: https://i.imgur.com/Yp9Z6w4.png
Чего я также хочу добиться, так это использовать полностью настроенный конвейер в качестве входных данных для другого конвейера. Чтобы достичь этого, я подумал, что на всех этапах реализован один и тот же интерфейс промежуточного программного обеспечения, и для создания конвейера перед его выполнением используется какой-то сборщик, этот сборщик также должен проверять, все ли этапы в основном совпадают (это может не иметь смысла есть разъем где-то посередине, потому что он будет в основном перезаписывать данные до этого).
Простая конвейерная реализация - https://pipeline.thephpleague.com/ но я думаю, что я мог бы также использовать мессенджер, но конфигурация шины сообщений с ее промежуточным программным обеспечением была бы моим конвейером, а это значит, что я буду строить шину динамически в зависимости от ее конфигурации и может даже существовать несколько шин, которые зависят друг от друга, если я хочу соединить 2 конвейера.
Считаете ли вы, что эта форма использования Messenger для динамического конвейера с данными только одного типа является злоупотреблением им?