API меняются. Консьюмеры ломаются. Контракты дрифтуют. diffray поддерживает порядок в вашей распределённой системе, ловя breaking changes на этапе PR.
Больше сервисов — больше способов сломать
Изменили ответ API в одном сервисе — сломали 5 консьюмеров. Никто не знал, что они зависели от этого поля.
Сервисы обходят API и ходят напрямую в базы друг друга. 'Так было быстрее' превращается в техдолг.
Документация API говорит одно. Код делает другое. Консьюмеры полагаются на недокументированное поведение.
Нет обработки ошибок, нет circuit breaker'ов, штормы ретраев. Один сервис упал — все упали.
AI применяет ваши архитектурные решения на каждом PR
AI анализирует OpenAPI спеки, GraphQL схемы и protobuf'ы. Ловит удаления, изменения типов и breaking-модификации.
"Удаление 'email' из UserResponse сломает OrderService и NotificationService."
Определите, какие сервисы могут общаться и как. Помечайте прямой доступ к БД и неуместные связи.
"PaymentService не должен импортировать из внутренностей UserService. Используйте публичный API."
Обеспечьте правильную обработку ошибок, таймауты, ретраи и circuit breaker'ы в межсервисных вызовах.
"У этого HTTP-вызова нет таймаута. Добавьте таймаут для предотвращения каскадных отказов."
Применяйте вашу стратегию версионирования API. Убедитесь, что изменения соблюдают правила обратной совместимости.
"Обнаружен breaking change. Либо увеличьте версию API, либо сделайте изменение аддитивным."
Знайте до релиза
Держите ваши микросервисы в синхронизации.
Начать бесплатно