TGViewer
GetAnalyst - Навыки • Системный анализ • Бизнес-анализ GetAnalyst - Навыки • Системный анализ • Бизнес-анализ @getanalysts · 22.6K subscribers
Post #2912 4.91K
🔎 5 способов выделения микросервисов 🔎

Микросервисы (МС) — это способ разбить большую систему на независимые, слабо связанные компоненты, каждый из которых отвечает имеет свою функциональную зону ответственности и релизится/масштабируется отдельно.

Другими словами — это небольшие сервер-приложения с их собственными БД.


Ниже — 5 ключевых подходов к декомпозиции сложной системы на микросервисы на примере проекта по доставке еды из ресторанов #FoodDeliveryGA 👇

-----------

1️⃣ По группам функций
Каждый МС объединяет логически связанные функции.

🔹 Управление пользователями
Регистрация, управление профилем, настройка избранных адресов доставки, настройки уведомлений.

🔹 Ведение справочника ресторанов
Управление ресторанами, статусом “онлайн/офлайн”, графиком работы, зонами доставки.

🔹 Ведение меню
Управление блюдами, модификаторами (доп.сыр, острый соус и др), размерами порций, доступностью позиций.

🔹 Работа с заказами
Создание заказа, статусы (принят, готовится, в доставке, доставлен, отменён), история заказов.

🔹 Доставка заказа
Назначение курьера, статусы (свободен, едет в ресторан, везёт заказ), геолокация.

🔹 Оплата заказа
Онлайн-оплата, статусы транзакций, возвраты, фискальные чеки, отчётность.

🔹 Рассылка уведомлений
Push/SMS/email-уведомления пользователям, ресторанам и курьерам по ключевым событиям.

-----------

2️⃣ По доменам (DDD - Domain Driven Design)
Выделяем bounded contexts (ограниченные контексты) по предметным областям.

🔹 Домен “Заказы”
Формирование заказов, статусы, бизнес-правила (минимальная сумма, время закрытия кухни, ограничения по району).

🔹 Домен “Рестораны и меню”:
Справочник ресторанов, витрина меню, управление доступностью блюд.

🔹 Домен “Логистика”
Маршрутизация курьеров, расчёт времени доставки, распределение заказов между курьерскими службами.

🔹 Домен “Платежи”
Интеграции с платёжными провайдерами, авторизация/списание, возвраты, финансы и отчёты.

🔹 Домен “Пользователи”
Профили, адреса, история заказов, избранные рестораны и блюда.

🔹 Домен “Лояльность”
Управление скидками, акциями и промокодами.

-----------

3️⃣ По данным
Каждый МС управляет узким набором сущностей.

🔹 Пользователи:
телефоны/email, избранные адреса, предпочтения.

🔹 Заказы:
состав заказа (позиции + модификаторы), суммы, статусы, временные метки.

🔹 Платежи:
транзакции, статусы оплат, идентификаторы операций у платёжных провайдеров.

-----------

4️⃣ По пользовательским сценариям
МС обслуживает конкретный Use Case.

🔹 Оформление заказа
Поиск ресторана, выбор блюд и модификаторов, расчёт стоимости, применение промокодов, выбор способа оплаты.

🔹 Приём и обработка заказа рестораном
Подтверждение/отмена, учёт закрытой кухни, недоступности блюд, времени готовки.

🔹 Доставка
Назначение курьера, трекинг заказа на карте, смена статусов, уведомления пользователю.

🔹 Поддержка
Обработка обращений: заказ опоздал, блюдо не привезли, неверный чек и т.д.

-----------

5️⃣ По уровню нагрузки
Высоконагруженные и обычные части системы выделяются в отдельные сервисы со своими SLA и требованиями к масштабируемости.

🔹 Каталог ресторанов и меню
Массовые чтения (поиск, фильтры, рекомендации), особенно в пиковые часы (обед, вечер, пятница).

🔹 Создание и трекинг заказов
Постоянные изменения статусов, обновления на экране пользователя в реальном времени.

🔹 Логистика/геолокация
Много запросов на обновление координат курьеров и расчёт ETA.

🔹 Платежи
Пиковые нагрузки при акциях и распродажах, повышенные требования к отказоустойчивости.

-----------

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

Как видно из примеров, разные подходы к декомпозиции могут приводить к похожему набору микросервисов. На практике их часто используют совместно.

👉 Сочетайте способы декомпозиции и фиксируйте принципы выделения новых микросервисов в архитектурной документации проекта.

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


#АрхитектураGA
  • 🔥 22
  • ❤ 12
  • 👍 3
  • ❤‍🔥 1
  • 🥰 1
More from @getanalysts
  1. Oct 8, 2026🧩 Как ИИ-агент собирает корзину во ВкусВилле: погружаемся в MCP 🤖 Представьте, что вы пи…
  2. Oct 7, 2026📦 Batch-интеграции: что делать, если обработалась только часть данных? 📦 Batch-интеграци…
  3. Oct 5, 2026🔣🔣 Бесплатный практикум по асинхронной интеграции с ИИ — только ДО ЗАВТРА 🔡🔡 📌 Полезн…
  4. Oct 5, 2026🅰️🔠 API Gateway и AI Gateway: в чём разница? API Gateway уже стал привычным компонентом…
  5. Oct 4, 2026«Я боялась технической части»: как гуманитарию начать осваивать системный анализ Кристина…
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 →