TGViewer
GetAnalyst - Навыки • Системный анализ • Бизнес-анализ GetAnalyst - Навыки • Системный анализ • Бизнес-анализ @getanalysts · 22.5K subscribers
Post #3121 5.43K
🗺️ 5 подходов к определению границ микросервисов 🗺️

Хорошая декомпозиция системы на микросервисы — это когда по каждому сервису понятно:
✔️ чем владеет (данные),
✔️ какие функции выполняет,
✔️ что он гарантирует (SLA),
✔️ и как реагирует на сбои.

Разберём 5 ключевых подходов к декомпозиции системы на микросервисы на примере проекта по управлению рекламой #AdFlowGA👇


———

1️⃣ По группам функций

Каждый микросервис объединяет логически связанные функции.

🔹 Сервис объявлений
Создание и редактирование креативов, версии, черновики, статусы.

🔹 ERID-сервис
Интеграция с ОРД, регистрация рекламы, хранение ERID, ретраи при ошибках.

🔹 Управление публикациями
Интеграции с рекламными API (VK, Telegram и др.), получение platformAdId.

🔹 Сервис биллинга
Резерв бюджета, списания, учёт показов, финансовая отчётность.

Подход понятный.
Но может игнорировать реальные доменные границы и различия в SLA.

———


2️⃣ По доменам (DDD — Bounded Context)

Выделяем ограниченные контексты с собственными правилами и моделями данных.

🔹 Домен “Управление объявлениями”
Креативы, статусы, версии, бизнес-правила переходов состояний.

🔹 Домен “Маркировка”
ERID, интеграция с ОРД, требования к отчётности, юридические ограничения.

🔹 Домен “Публикация”
Работа с API площадок, синхронизация статусов, дедупликация запросов.

🔹 Домен “Финансы”
Резервы, списания, корректировки, возвраты.

Важно:
разные домены = разные SLA и разные требования к отказоустойчивости.


———

3️⃣ По данным (Data Ownership)

Каждый сервис владеет своим набором сущностей.

🔹 Управление объявлениями
Ad, AdVersion, AdStatus.

🔹 Биллинг
Budget, Reservation, Transaction.

🔹 Публикации
PlatformAd, SyncStatus.

Никакой “общей БД на всех”.
Данные связаны по id (PK - первичным ключам).
Связь через брокеры + API.


———

4️⃣ По процессным границам

Границы сервисов можно выявить через группы сценариев, которые логически связаны и часто изменяются вместе.

🔹 Запуск рекламной кампании
Создание объявления, прохождение модерации, получение ERID, публикация на площадке, активация, запуск биллинга.

🔹 Управление кампанией
Приостановка и возобновление показов, изменение статуса, обновление параметров размещения.

🔹 Управление бюджетом
Начисление бюджета, резерв средств, списание, корректировки, возвраты.


———

5️⃣ По уровню нагрузки и SLA

Это уже архитектурная зрелость.

🔹 Сервис статистики
Высокая нагрузка на чтение, горизонтальное масштабирование.

🔹 Сервис публикаций
Много внешних API-вызовов, таймауты и задержки.

🔹 Биллинг
Повышенные требования к консистентности и надёжности.


———

Список микросервисов по каждой категории можно продолжить.


👉 Разные способы декомпозиции часто приводят к похожему набору сервисов.

Но основание для выделения сервиса должно быть зафиксировано в архитектурных принципах проекта.

Это поможет избежать неясностей и обеспечит гибкость при развитии проекта 🚀


#АрхитектураGA
  • ❤ 13
  • 👍 10
  • 🔥 2
More from @getanalysts
  1. Sep 25, 2026🔥❤️‍🔥🎉 Вау-вау-вау! Вот это мы отметили! 4 часа практики, море вопросов, десятки схем и…
  2. Sep 24, 2026😂👍👍❤️👌😅😊😊😍😘 ❗️До начала 15 минут❗️ 🧡 «Асинхронная интеграция с ИИ-сервисом: от а…
  3. Sep 24, 2026❗️Уже через 3 часа встречаемся онлайн❗️ 👩‍💻 Открытый практикум с Екатериной Ананьевой 🔥…
  4. Sep 24, 2026Пусть хотя бы сегодня всё пойдёт по happy path 🎉🙏🩷 Сегодня праздник у людей, которые сл…
  5. Sep 23, 2026🧡 6 практических гайдов по Postman для системного аналитика: от REST API до OAuth 2.0 и m…
  6. Sep 23, 2026🤖 Интеграция с AI: 10 требований, которые надо учесть аналитику 🤖 При интеграции с AI-се…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →