Короткие вопросы и короткие ответы: Q: Как проверить независимость микросервисов? A: Проверяем на независимость функционального развития, тестирования и поставки. Не должно быть блокирующих зависимостей, – если любая строчка кода не может сразу уйти в прод или при падении одного сервиса перестает работать другой сервис –  есть зависимость. Q: Как формировать команду под разработку MSA? A: Как и не под MSA. Через HeatMap например. Берем беклог, оцениваем потребность в компетенциях (не только по языкам и технологиям, но и по компонентам и системам) по каждому элементу по шкале от 0 (не нужна) до 10 (требуется фултайм), в команде должны быть компетенции для того, чтобы самостоятельно выполнить [в пределе] 100% элементов беклога. Иными словами - компетенции не должны быть сдерживающим фактором для развития бизнеса. Они становятся сдерживающим фактором, если вначале определяются компетенции, а затем они выступают ограничением к развитию продукта (влияют на приоритеты, например). Увы, но это достаточно распространенный паттерн поведения. Q: Возможно ли (и в каких случаях) выделать в отдельыне сервисы системные (не бизнесовые) компоненты? A: Вполне, это такие же сервисы, как и любые другие, с точки зрения архитектуры отличий особых нет, но может отличаться подход к их развитию, – например, это может быть платформа, либо inner sourcing. Q: Как определять контексты? A: Границы поддоменов изначально определены самим бизнесом, а контексты мы задаем сами на этапе дизайна. Граница контекста – это граница согласованности единого языка, в рамках которой каждый термин имеет строго единственное значение за счет исключения тех деталей изначального домена, которые не имеют смысла (определения) в рамках границ заданного контекста.