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