Какую архитектуру подобрать для данной задачи?
================================================

 Задача.  

Приложение, в котором клиенты проходят N шагов обработки (обмен сообщениями, например публичными ключами, аутентиф. данными и т.п.) после чего попадают в общий пул юзеров, т.е. количество шагов недетерминировано.  

После N шагов все клиенты могут взаимодействовать друг с другом через сервер.  

Задача стоит сделать все это со строгой типизацией(typescript) и расширяемой архитектурой (между этапами обработки можно добавить еще один, конечный пул должен быть также расширяемый по функционалу).  

Какой паттерн стоит рассмотреть?  

Middlewares кажутся неэффективными, поскольку данные выходящие из узла 1 нужны только в узле 2, но не в третьем, а middleware только наращивают данные или уточняют - в моем случае интерфейсы результатов работы между узлами могут быть совершенно разные. 

 workflow или state machine. Хотя они очень похожи