Аудит інтеграцій з зовнішніми системами
Назва | Критичність |
---|---|
Середня |
|
Середня |
|
Середня |
IN-01. Окремі бізнес-процеси та критерії пошуку
Критичність: середня |
Створювати окремі бізнес-процеси та критерії пошуку для вхідних зовнішніх інтеграцій сторонніми системами. Використання спільних бізнес-процесів, що можуть запускатися користувачем в кабінеті та зовнішньою системою вважається поганою практикою і може призвести до проблем з оновленням та підтримкою. Теж саме стосується і критеріїв пошуку.
Використання спільних бізнес-процесів та критеріїв пошуку для зовнішніх систем і для користувачів в кабінеті є порушенням принципу єдиної відповідальності. При оновленні функціонала, як результат виконання запиту на зміну від конкретного стейкхолдера (наприклад, посадової особи), відбудеться небажане оновлення і для інших стейкхолдерів (наприклад, зовнішньої системи), що може не відповідати вимогам бізнес-процесу чи критерію пошуку.
-
Розробляти окремі бізнес-процеси під зовнішні інтеграції
-
Розробляти окремі критерії пошуку під зовнішні інтеграції
-
При оновленні контракту взаємодії, випускати нову версію бізнес-процесу та критерію пошуку залишаючи стару версію тимчасово для зворотної сумісності
IN-02. Симуляція АПІ зовнішніх систем
Критичність: середня |
Проводити тестування вихідних інтеграцій з зовнішніми системами за допомогою функціональності симуляції АПІ зовнішніх систем перед виходом в промислове середовище. Не потрібно відкладати до промислового середовища повноцінну e2e перевірку відповідних бізнес-процесів.
Неперевірені сценарії в яких залучені зовнішні системи можуть призвести до непередбачуваних наслідків при використанні в промисловому середовищі
-
Проводити тестування використовуючи можливості по симуляції АПІ зовнішніх систем
-
Проводити тестування вихідних зовнішніх інтеграцій з тестовим середовищем зовнішньої системи при умові, що таке оточення існує
IN-03. Обробка помилок
Критичність: середня |
При використанні вихідних зовнішніх інтеграцій треба продумати стратегію обробки помилок при зовнішніх викликах. Стратегія, яка використовується за замовчування може не відповідати вимогам бізнес-процесу і в такому випадку повинна бути адаптована.
На момент написання документа, за замовчуванням відповіді викликів зовнішніх систем з HTTP статус кодами 4** або 5\** вважаються помилками та генерують виключення. Тобто при використанні відповідного делегату, буде виконаний виклик, згенерована помилка та токен виконання бізнес-процесу буде повернутий до останнього wait-state. При асинхронному виклику, додатково ще будуть відпрацьовані retry policy. |
При тимчасовій чи постійній проблемі на стороні сервісу зовнішньої системи поведінка бізнес-процесу може відрізнятися від фактичних вимог і може бути неоптимізованою. Наприклад, коли виклик зовнішньої системи є некритичним і може бути виконаний після відновлення системи, то доцільно буде змоделювати додаткову асинхронну логіку в бізнес-процесі, яка не буде блокувати виконання основного флоу.
-
При використанні вихідних зовнішніх інтеграцій, визначити критичність конкретного виклику і відповідну стратегію обробки помилок
-
При виникненні помилки може бути застосована одна з наступних тактик:
-
Відкат до останнього wait-state. Це може бути, як користувацька задача, так і старт асинхронного виконання. Слід зауважити, що якщо останній wait-state є користувацькою задачею, то відповідну помилку побачить користувач, і саме він повинен бути ініціювати повторну спробу. При асинхронному виконанні, буде спочатку відпрацьована політика retry policy, після чого буде сформований інцидент. В такому варіанті, повторну спробу повинен бути ініціювати адміністратор ресурсу.
-
Обробка помилок за допомогою Error Boundary Event на сервісній задачі зовнішнього виклику. Якщо помилка при виклику зовнішньої системи є станом, що можна передбачити та обробити відповідним чином, цю поведінку потрібно імплементувати в бізнес-процесі.
-
Детальніше про wait-state можна ознайомитись в офіційній документації Camunda |