Есть задача — сделать проект, состоящий из нескольких подсистем. Суть в том, что должна отработать одна подсистема, передать данные в следующую, затем отрабатывает следующая и передает данные дальше. Все подсистемы отрабатывают по порядку. Вопрос в следующем — как лучше такое организовать, учитывая что подсистемы должны быть легко заменяемы при необходимости(например описывается некий алгоритм обработки данных, и каждая подсистема является отдельным алгоритмом, и иногда нужно будет либо добавлять новые алгоритмы, либо менять старые).