Как описать интеграцию?
-
сначала диаграмма последовательности (sequence diagram) для согласования потоков и обсуждения подхода к интеграции с коллегами;
-
затем детализация каждого потока этой диаграммы:
- описание атрибутного состава
- примеры сообщений (запрос/ответ)
- (если надо) статусную модель
- (если надо) маппинг, например при описании ETL-процесса
Примеры сообщений (что в запросе, что в ответе, что в базе) составляются по каждому из сценариев, чтобы разработчики могли использовать их в автотестах.
Как описать сервис?
Типовой шаблон страницы с описанием сервиса:
- Команда
- Назначение (предназначен для блаблабла)
-
Функции
- [что сделать] (записать событие в журнал)
- потребитель функции: [потребитель] (внешний сервис)
- аргумент функции: [аргумент, что подаём на вход] (событие)
- результат: [результат] (событие записано в журнал)
-
Варианты и сценарии использования сервиса
- [use case diagram]
-
N. Сценарий [название сценария] (Сценарий Запись события в журнал)
- Главный успешный сценарий
- [главный успешный сценарий] (Внешний сервис ABCD передаёт событие в этот Сервис)
(Пользователь заполняет параметры фильтрации событий. Сервис возвращает пользователю события, отвечающие параметрам фильтрации)
- Исключительный сценарий
- [исключительный сценарий] (Сервис возвращает ошибку, если не указаны обязательные параметры поиска данных)
- Нефункциональные требования
-
Структура сервиса
- Компонентно-логическая модель
- Компоненты
- Интерфейсы
- логическая модель хранилища данных
- физическая модель хранилища данных (описание уже на уровне БД — какие таблицы, поля, ключи и т.п.
-
Поведение сервиса
-
Прочие аспекты сервиса
-
Сценарии отказа
Риск |
Последствия отказа |
Компенсирующие механизмы |
Kafka |
Потеря логов |
Масштабирование |