Layered | Декомпозиция решаемых задач по слоям. Позволяет стандартизованно наращивать функционал. Инкапсуляция изменений в рамках слоя. | Как и все – не является универсальной. Некоторые слои могут быть избыточными. |
Client-Server | Общепринятый подход для обеспечения взаимодействия запрос-ответ. | Для обработки каждого запроса необходим отдельный поток исполнения на сервере. Обязательно межпроцессное взаимодействие. |
Master-Slave | Исполнение сервисной функции делегируется различным специализированным исполнителям. | Slave является изолированным исполнителем. Высокие задержки взаимодействия. |
Broker | Динамическое распределение бизнес функций. | Высокие требования к стандартизации протоколов информационного обмена. |
Peer-to-Peer | Поддерживает распределенные вычисления. Высокая отказоустойчивость системы в целом. Высокая горизонтальная масштабируемость. | Не гарантирует работу единичного узла. Сложности с обеспечением безопасности. Трудно прогнозируемая производительность. |
Event bus | Простота добавления/изменения сообщений информационного обмена. Высокая эффективность для распределенных систем. | «Бутылочным горлышком» является сама шина, т.к. является единственным звеном обеспечивающим транспорт сообщений. |
Model View Controller | Поддержка нескольких представлений для одной и той же модели. Возможность подмены представлений в run-time. | Относительно высокая сложность. |
MicroServices | Возможность частого обновления элементов. Выше общая доступность системы. Проще соблюдение принципов SOLID. | Повышенные требования к согласованности данных/интерфейсов. Повышенные требования к поддержке инфраструктуры. |