Termins, Transport/Dispatcher, Pattern
https://giga.chat/link/gcsVBtnaaS
Английское наименование: Transport/Dispatcher Pattern (или вариации на тему Outbox / Inbox, Message Broker pattern).
Русская трактовка: Это классический архитектурный паттерн в системах с событийно-ориентированной (event-driven) логикой. Его суть заключается в строгом разделении двух ключевых этапов обработки данных:
- Транспорт (Transport): Компонент, отвечающий исключительно за доставку сообщения или события из точки А в точку Б. Его задача — принять данные, поместить их в очередь (брокер сообщений), обеспечить гарантированную доставку и подтверждение получения. Он не знает и не должен знать, что делать с этим сообщением дальше.
- Диспетчер / Исполнитель (Dispatcher / Executor): Автономный компонент-потребитель, который подписывается на события от Транспорта. Он извлекает сообщение из очереди и выполняет бизнес-логику, связанную с ним.
Разделение системы на эти два независимых компонента даёт следующие преимущества:
- Независимое тестирование и масштабирование. Вы можете тестировать Транспорт отдельно, проверяя лишь корректность доставки, а Диспетчера — отдельно, проверяя бизнес-логику. Масштабировать их также можно независимо друг от друга. Например, если система получает огромный всплеск входящих событий, вы добавляете больше инстансов Транспорта. Если же обработка каждого события становится долгой и сложной, вы масштабируете количество Диспетчеров.
- Возможность менять стратегию исполнения без переписывания транспорта. Это прямое следствие слабой связанности. Логика того, как именно обрабатывать событие, может меняться кардинально (например, вместо одного обработчика запускается цепочка из нескольких), но Транспорт об этом даже не узнает. Ему всё так же нужно просто доставить сообщение до нужной очереди.
- Чёткие границы ответственности и минимальное сцепление. Каждый компонент делает что-то одно и делает это хорошо. У них нет общих состояний или сложных зависимостей друг от друга. Это упрощает поддержку кода, снижает риск внесения ошибок при изменениях и соответствует принципу разделения обязанностей (Separation of Concerns).
Комментариев нет:
Отправить комментарий