3 вопроса, которые я всегда задаю перед описанием интеграции
Перед тем как описывать методы API я обычно задаю себе (и команде) три базовых вопроса.
1. Какая система является источником истины?
То есть где хранится реальное состояние данных. Например, где живёт актуальный статус заказа, какая система отвечает за профиль пользователя или где формируется итоговая сумма платежа.
Если это не определить сразу, через какое-то время системы начинают расходиться в данных. В одной системе заказ оплачен, а в другой в обработке.
И потом начинаются долгие разборы: кто же должен был обновить статус.
2. Что происходит, если интеграция ломается
Интеграции всегда работают в нестабильной среде: то сеть может пропасть, то сервис недоступен, запрос может не дойти, или операция может выполниться частично.
Поэтому важно понять 3 ключевых момента:
— можно ли повторять запрос — что будет, если сообщение отправится дважды — как система восстанавливается после сбоя
Если эти вещи не продумать на этапе анализа, потом они превращаются в инциденты на проде.
3. Насколько критично событие
Этот вопрос сильно влияет на архитектуру интеграции!
Например:
• можно ли потерять событие?
• допустима ли задержка обработки?
• нужно ли гарантировать доставку?
Иногда событие можно спокойно обработать через polling раз в несколько минут.
А иногда потеря одного сообщения может стоить бизнесу денег! И тогда уже нужны очереди и гарантированная доставка.
Эти три вопроса помогают увидеть будущие проблемы ещё до того, как написана первая строка требований.
Сохраняйте и используйте в работе!🔥
Post #1010
285
- 🔥 9
- ❤ 3
- ✍ 2
- 👍 2