Документы доступны на GitHub
SEDA, как указано в документе:
"Основной единицей обработки в SEDA является этап. Этап
является автономным компонентом приложения, состоящим из обработчика событий,
очередь входящих событий и пул потоков ...
Каждый этап управляется контроллером, который влияет на планирование
и распределение потоков. Этапные потоки работают, вытаскивая пакет событий из очереди входящих событий и вызывая предоставленный приложением обработчик событий. Обработчик событий обрабатывает каждый пакет событий и отправляет ноль или более событий, помещая их в очереди событий других этапов. "
Для меня вы могли бы спроектировать вашу стадию как логическую модуляризацию потока ваших приложений. Это может быть основано на функциональности, на основе разделения интересов, на основе производительности, на основе операций и обслуживания.
Я бы попросил вас прочитать прилагаемый PDF-файл, поскольку в нем упоминается необходимость в очереди событий для разделения содержимого, логической компенсации для достижения максимальной эффективности компонента, как эффективно использовать существующие ресурсы, над которыми приложение работает как сеть , память, циклы процессора и т. д.,
Чтобы провести параллель, есть исследования, проведенные на рабочих сборочной линии, которые работали в серии, собирающей что-то от начала до конца, достигли меньшей производительности, но когда их изолировали и заставили выполнять одну работу и передать частично собранный блок в В следующей группе каждый из них стал эффективно управлять своей работой. По сути, ваш процесс сборки чего-либо был разбит на несколько этапов, и каждый из них или группа из них были ответственны за работу на сцене.
Все, что здесь было сделано, состояло в том, чтобы включить и настроить структуру вокруг каждого человека или группы и способ общения от одного человека / группы к другому. Теперь мы можем сравнить каждого человека / группу и структуру вокруг него со сценой.
Чтобы добавить измерение событий в SEDA, подумайте о том, как группы людей общаются друг с другом, и о количестве событий, которые в них участвуют. Скажем, к примеру, у ребят этапа 1 закончились гайки и болты, и они немедленно информируют менеджера отдела заказов о гайках и болтах. Вполне возможно, что менеджер отдела заказов получил аналогичный запрос от другого сотрудника 6-го этапа, что у него закончились гайки и болты. Теперь он видит запросы в центральной точке (он похож на контроллер в SEDA) и на листе Excel, в котором он хранит все записи, в которых он хранит запросы на размещение заказов (как очередь в SEDA), он объединяет их и заказывает их вместе за один раз вместо отправки двух запросов (управление потоками и расписанием в SEDA).
Теперь, если у вас есть такой механизм в вашей программной архитектуре, который состоит из нескольких компонентов, отправляющих различные события друг другу и имеющих контроллеры, использующие их и действующие соответственно, то у вас, вероятно, есть очень хорошая установка, управляемая поэтапным событием .