Platform by design
Каждая команда при создании нового микросервиса или компонента мобильного приложения должна быть готова, что это решение станет «платформенным», используемым всеми, расширяемым. API - способ взаимодействия как сервисов, так и команд друг с другом. Отсутствие лишних зависимостей, простота подключения новых потребителей и всегда актуальная документация - критически важные требования к любому сервису, без которых эффективное взаимодействие команд невозможно.
Практики
Приступая к работе, важно держать в голове мысли: «может ли это ещё где-то пригодиться, в другой команде, в другом приложении?», «как этот функционал будет/может дальше развиваться?». Подумав над вопросами выше, нужно заранее заложить возможность переиспользования и расширения техрешения.
При этом появление новых зависимостей между сервисами обязательно проходит через аудит и отражается на архитектурной схеме.
Каждый сервис должен иметь актуальную спецификацию API, как синхронного, так и асинхронного.
Минимальный overhead на запуск нового сервиса, чтобы позволить командам реализовать необходимый уровень декомпозиции сервисов.
Чем вдохновляться
- The Bezos API Mandate
- Understanding the API-First Approach to Building Products
- teamtopologies