Як визначити межі мікросервісу?
Межі мікросервісу визначаються тим, яку бізнес-функцію він виконує цілком і незалежно. Головний орієнтир - бізнес-логіка, а не технічна структура.
1. Орієнтуйся на предметну область (domain)
Використовується принцип bounded context з DDD: один сервіс = одна чітка частина бізнесу. Приклад: «Користувачі», «Замовлення», «Платежі», «Доставка». Кожен сервіс відповідає лише за свій контекст і не втручається в чужий.
2. Шукай природні залежності
Якщо два модулі часто змінюються разом - вони, найімовірніше, мають бути в одному сервісі. Якщо живуть незалежно і рідко взаємодіють - варто розділити.
3. Дивись на дані та володіння ними
Кожен сервіс повинен володіти своїми даними і не звертатися напряму до чужих баз. Межа часто проходить там, де змінюється «власник» даних.
4. Мінімізуй крос-сервісні виклики
Якщо два сервіси обмінюються надто великою кількістю запитів - можливо, межу обрано невдало. Хороший сервіс - той, що більшу частину роботи виконує сам.
5. Роби сервіс завершеним за змістом
Він повинен уміти виконати бізнес-функцію від початку до кінця, без прямої залежності від інших. Приклад: сервіс «Платежі» має сам перевіряти оплату, а не питати дозволу в «Замовлень».
Підсумок:
Межа мікросервісу проходить там, де закінчується його бізнес-відповідальність. Він повинен бути автономним, володіти своїми даними і виконувати цілісне завдання без тісного зв'язку з іншими.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.