Да, SOA идеален в этом случае (сложная, распределенная система с широким набором технологий), но, исходя из ее звучания, вам нужно провести гораздо больше исследований, чтобы разобраться в концепции. В любом случае, это не сложная концепция, она на самом деле проста, но нет единого предписанного способа сделать это. Я предлагаю просмотреть тематические исследования SOA для проектов аналогичного размера , успехов и неудач.
Вы упоминаете фасад для одной из ваших подсистем. Распространите эту же концепцию на остальные ваши компоненты. Например. каждая услуга является фасадом сложной подсистемы.
Кроме того, я рекомендую реализовать несколько различных веб-сервисов в выбранных вами технологиях и абстрагировать произвольно разные подсистемы (база данных должна быть одним из компонентов). Затем написать клиент, который использует их. Это даст вам большой практический опыт и понимание концепции.
Последняя мысль: единственная область, где архитектура SOA может наткнуться, - это если вам нужно перемещать видеоданные между несколькими различными сервисами. Транзакционная природа SOA без сохранения состояния может создавать проблемы с производительностью при перемещении очень больших объемов данных или при выполнении массовых транзакций с очень большими наборами данных. Вам нужно либо сохранять локализованное видео, либо внедрять внутреннюю подсистему (чит), чтобы избежать потенциально неприятных узких мест.