GetAnalyst - Навыки • Системный анализ • Бизнес-анализ
19.5K subscribers
2.09K photos
75 videos
203 files
1.19K links
Разбор задач на проектирование систем 🚀 Канал для системных аналитиков, бизнес-аналитиков, тестировщиков и менеджеров проектов

Админ @getanalyst
Сайт https://getanalyst.ru
Чат t.me/getanalystchat
Начинающим в IT @getanalyststart

РКН №5013005196
Download Telegram
REST_API_Пример_требований_Создать_товар_POST_GetAnalyst.pdf
1.1 MB
📚 Заполненный шаблон задачи на REST API - создание товара через POST /products 📚

За прошедший месяц в проекте FarmFreshGA мы спроектировали с нуля ключевые REST API методы:

Поиск по каталогу продуктов (с кэшированием)
POST /products/search

Выгрузка требований из Confluence

Редактирование товара для фермера
PUT /products/{productId}

Выгрузка требований из Confluence

Создание заказа
POST /products

Финальная выгрузка из Confluence добавлена к этому посту.


На что стоит обратить внимание в этой базе документации:

👉 1. Использование метода POST как на создание, так и на получение данных. Хотя POST в REST предназначен только для создания.

👉 2. PUT на редактирование товара с обоснованием, почему мы всегда хотим отправлять на сервер полный набор параметров, а не только изменённые - что можно делать в PATCH.

👉 3. Наличие нескольких каталогов API на сервере:
+ Поиск продуктов - public
+ Редактирование и создание продуктов - seller-api
Обратите внимание на разницу в полных URL.

👉 4. Оформление требований к обработке ошибок.

👉 5. Алгоритм кэширования в поиске товаров по каталогу.

👉 6. Примеры требований к логированию и мониторигу.

👉 7. Наличие макетов UI и схемы БД
, которые были необходимы для работы.


Эти документы — одновременно:

◽️ реальные примеры с проектов,
◽️ решения задач с собеседований на Senior СА (особенно метод поиска с кэшированием).

Проект
#FarmFreshGA завершён! 🏁


Сохраняйте подборку в избранное, делитесь с коллегами, и следите за новостями о новых проектах! ❤️‍🔥


#RestApiGA
🔥197👍1
📖 Что почитать про Архитектуру и Микросервисы 📖

Когда я только начала знакомиться с архитектурой, то одной из первых и любимых книг сразу стала:

📚 Domain Driven Design. Предметно-ориентированное проектирование, Эрик Эванс

Благодаря ей я, как системный аналитик, еще раз пересмотрела подходы к проектированию и описанию требований, структурировала знания, и начала осознанно использовать рекомендации из нее.

Особенно она помогла в подходах к определению сервисов и микросервисов системы, границ их функциональности.


В дополнение к ней я бы хотела порекомендовать:

📚 Release it! Проектирование и зайн ПО для тех, кому не все равно, Майкл Нейгард (тоже мой фаворит!)

📚 Создание микросервисов, Сэм Ньюмен

📚 Микросервисы. Паттерны разработки и рефакторинга, Крис Ричардсон

📚 Высконагруженные приложения, Мартин Клеппман

📚 Чистая архитектура. Искусство разработки программного обеспечения, Роберт Мартин

📚 Эволюционная Архитектура, Нил Форд, Ребекка Парсонс, Патрик Куа

📚 DDD - предметно ориентированное проектирование, Влад Хононов


Ставьте реакцию, если сохранили подборку! 😊❤️‍🔥

#АрхитектураGA
55❤‍🔥16😢1
💎 Архитектура для СА - точка роста в карьере 💎

Работа в сложных проектах с микросервисами, брокерами и архитектурой - точка роста для системных аналитиков.

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


👉 Чтобы помочь вам перейти на новый уровень быстрее, мы создали практическую программу:

💎 Проектирование архитектуры
🗓 Старт: 2 декабря 2025

Вместе мы:
✔️ Построим архитектуру проекта с нуля: монолит, SOA, MSA.
✔️ Разберём и многократно применим нотацию C4.
✔️ Подберём API для проекта и разберём нюансы на практике: REST, GraphQL, gRPC, WebSocket и др.
✔️ Поставим задачи на брокеры (Kafka, RabbitMQ), Webhooks и другие механизмы асинхронного обмена.


Цели, которые ставят и реализуют наши аналитики в процессе обучения:
Повышают грейд внутри компании
Переходят из проектной разработки в продукт
Структурируют знания и проходят аттестации
Получают повышения
Проходят собеседования и выбирают офферы по душе 🩷


🎁 До 25 ноября
— предзапись на спецусловиях: скидка + доп. обучение по REST API в подарок.

👉
Подробности и запись


Вопросы? Пишите
info@getanalyst.ru или @getanalyst.
Please open Telegram to view this post
VIEW IN TELEGRAM
17
GetAnalyst_Архитектура_Монолит,_SOA_и_MSA.png
793.6 KB
⭐️ Монолит, Сервисная и Микросервисная архитектуры - в чём разница и что выбрать? ⭐️

Для аналитиков важно не только знать, какие виды архитектур существуют, но и понимать их ключевые отличия.

В этом посте знакомимся с востребованными видами архитектуры:


🔸 Монолит
Все компоненты приложения находятся в одной кодовой базе и работают как единое целое.

БД:
Обычно одна, но допустимо и несколько.

Внутренние интеграции:
Компоненты взаимодействуют только на уровне кода, интеграции компонентов внутри Backend по API и другими способами НЕ нужны.


🔸 Сервис-ориентированная архитектура, SOA
Разделяет функциональность на отдельные сервисы.
Подходит для средних и крупных проектов, где важно обеспечивать высокий уровень производительности для отдельных частей системы.

БД:
Каждый сервис может использовать свою собственную БД.
Также несколько сервисов могут использовать одну общую БД - это отличает SOA от MSA.

Внутренние интеграции:
Сервисы взаимодействуют между собой через сетевые вызовы - по API, через шину данных (ESB) или другими способами.


🔸 Микросервисная архитектура, MSA
Состоит из множества маленьких, независимо разрабатываемых и развертываемых сервисов, каждый из которых выполняет определенную бизнес-логику.

Микросервисы меньше по функциональности, чем сервисы.

Подход эффективен для больших и быстро развивающихся приложений.

БД:
Каждый микросервис управляет своей собственной БД.

Внутренние интеграции:
Взаимодействие между микросервисами часто строится по API на легких протоколах, таких как REST или gRPC, и может включать брокеры для асинхронной коммуникации.



👉 Выбор архитектуры проекта зависит от специфики и НФТ к системе.

На практике часто используют либо смесь подходов SOA и MSA, либо начинают проекты с монолита и через 3-5 лет задумываются о переезде на SOA в качестве первого этапа деления монолита на микросервисы.

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

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥8👍4
Хочу поделиться мыслями об учёбе по прикладному AI в Университете Джонса Хопкинса 🤓

Короче... начался модуль по высшей математике и алгоритмам для анализа данных:
+ вероятности,
+ логистическая регрессия,
+ "рандомный лес",
и прочие радости жизни.


Если честно, я прошла все стадии принятия:

😱 Шок: «Регрессия? Вспомнить бы что это»

🥲 Отрицание: «Я же не аналитик данных, зачем мне это?»

🤯 Замирание мозга: сижу, пересматриваю одну и ту же лекцию по 2–3 раза и всё равно такое ощущение, как будто слушаю инопланетный язык. Ещё и английский....


Использование этих алгоритмов (надеюсь) будет дальше по программе, так что пока мозг героически верит «ну, видимо, скоро это всё пригодится».

А сейчас это просто кусок информации, который БЕСИТ! 😡


Но вот, что я в очередой раз поняла 👇
Учёба — это не «понимаю всё с первого раза».


Это когда:
ты ощущаешь себя максимально тупым,
тебе хочется посмотреть "завтра", в надежде, что станет понятнее,
ты не видишь пользы прямо сейчас,
но продолжаешь разбираться, потому что это шаг к следующему уровню.

И да, бывают модули, где ты всё понятно, где ловишь идеи и структурируешь знания.


А бывают такие, как эта высшая математика, где ты просто злишься от непонимания и количества запросов к ChatGPT, чтобы он пояснил, что значат эти сложные слова.



В GetAnalyst я всегда стараюсь донести всё через практику, понятными словами. Даю теорию и сразу показываю как это применяется в работе.

Но не везде так возможно.
Иногда надо сначала построить сильную теоретическую базу, чтобы дальше с пониманием решать задачи.
Видимо у меня с AI будет так 🤷‍♀️



Так что бывают моменты, когда сложно, когда приходится пересматривать, когда вы чувствуете себя так же, как я сейчас. И это ОК.

Важно не то, понимаете ли вы всё с первого раза.

Важно, что вы:
задаёте вопросы,
не боитесь чувствовать себя «некомфортно тупым»,
стараетесь разобраться во всех деталях.


А я с вами, чтобы отвечать на вопросы, и дать понимание на все 146% в любом вопросе по системному анализу и архитектуре 😊❤️‍🔥
67❤‍🔥21🔥15💯6😍2🦄2
🔔🤖 Как эффективно использовать AI для проектирования БД и SQL-запросов [сегодня, в 19:00 Мск] 🤖🔔

Хотите научиться работать с AI без хаоса, с продуманной стратегией промптов? Этот онлайн-практикум для вас!


🤖 Использование AI для проектирования БД + SQL
🗓 17 ноября [пн]
🕘 19:00 - 21:30 МСК

🔗 Подробности и запись

Занятие проводится в рамках подписки на практикумы по БД и SQL. Участи платное - от 1390 руб.



Запись будет доступна на следующий день после занятия.

🎁 Дополнительно получаете занятие в записи по SQL, с практикой в реальной БД через DBeaver 😎


👉План практикума:

Часть 1 - видео-уроки в платформе
1. Обзор нейросетей
2. Промпт-инжиниринг
3. Работа с AI: физическая модель для PostgreSQL, ER-диаграммы, создание реальной БД через SQL-скрипты

🟢 Часть 2 - онлайн-практика
1. Закрепление материала из видео-уроков и обсуждение вопросов
2. Разработка SQL-запросов с AI - практика
3. Особенности работы с AI


👉 В результате:
✔️ Научитесь грамотно формулировать промпты для AI.
✔️ Получите связки инструментов, которые необходимы аналитикам для работы с БД.
✔️ Создадите свою СУБД через DBeaver и выполните SQL-запросы в ней.
✔️ Узнаете требования к соблюдению безопасности и особенности взаимодействия с AI.


По вопросам можно писать через сайт или @getanalyst 💬


До встречи в прямом эфире! 🙌
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍1👎1🤣1
🍕 Микросервисы, API Gateway, хореография и оркестрация: новый проект по доставке еды #FoodDeliveryGA 🍕

Представим свою версию Яндекс.Еды — платформу, где:
▫️ пользователи заказывают еду из десятков ресторанов,
▫️ курьеры забирают и развозят заказы,
▫️ рестораны управляют меню и статусами блюд,
▫️ операторы следят за заказами в реальном времени.

Классика для старта — развернуть всё на одном сервере Backend, с одной большой БД.
👉 То есть начать с монолитной архитектуры.

Но как только появляются пиковые часы, акции и тысячи параллельных пользователей, монолит превращается в точку отказа.

👉 Поэтому в #FoodDeliveryGA сразу идём в сторону распределённой архитектуры.


В процессе работы над проектом разберём:

1️⃣ Проектирование микросервисов
Как разделить домен доставки еды на сервисы: заказы, пользователи, рестораны, курьеры, платежи и т.д.

2️⃣ API Gateway
Единая точка входа для мобильных и веб-клиентов + отдельные входы для партнёров (рестораны, внешние курьерские службы).

3️⃣ Партнёрские интеграции
Подключение ресторанов к нашему сервису - как это встраивается в архитектуру и что для этого нужно.

4️⃣ Оркестрация vs Хореография
Подходы к управлению процессами.

5️⃣ Брокеры RabbitMQ и Kafka
Когда и какой брокер выбрать, их устройство и ключевые принципы работы.


Будем делать схемы, продумывать потоки данных и разбирать, почему конкретное решение по архитектуре здесь будет работать лучше другого.


Подписывайтесь на @getanalysts и следите за хэштегами #FoodDeliveryGA и #АрхитектураGA в ближайшем месяце, чтобы изучать архитектуру на реальных примерах и быть в курсе актуальных публикаций по проекту 🍕

#АрхитектураGA
🔥388👍4
🔎 5 способов выделения микросервисов 🔎

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

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


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

-----------

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

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

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

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

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

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

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

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

-----------

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

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

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

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

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

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

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

-----------

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

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

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

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

-----------

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

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

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

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

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

-----------

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

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

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

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

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

-----------

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

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

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

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


#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2212👍3❤‍🔥1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
API Gateway и 10 его главных функций: практическое руководство для аналитиков и архитекторов

🔗 Полный гайд по API Gateway

API Gateway (API-шлюз) — это единая точка входа для всех клиентских запросов к Backend.

Обычно используется в микросервисной архитектуре.

👉 Его главная функция — маршрутизация запросов.
Но, помимо этого, API Gateway предоставляет и другие важные функции.


Как он работает:

1️⃣ Первичная обработка запроса

Клиент отправляет запрос в API Gateway, а не напрямую к сервисам. Это обеспечивает централизованную точку входа в систему, а также упрощает интеграцию для клиента.

2️⃣ Валидация запроса
API Gateway проверяет корректность запроса.
Если формат нарушен — запрос отклоняется.

3️⃣ Проверка безопасности
Выполняется проверка по спискам разрешённых (allow-list) и запрещённых (deny-list) источников. Небезопасные запросы блокируются.

4️⃣ Аутентификация и авторизация
Проверяет токены и другие учетные данные. Гарантирует, что у клиента есть необходимые разрешения для доступа к запрашиваемым ресурсам.

5️⃣ Ограничение частоты запросов (Rate Limiting)
Если клиент превышает лимит запросов — они отклоняются с соответствующим ответом.

6️⃣ Маршрутизация к нужному сервису
На основе пути или других признаков, API-шлюз определяет, какому микросервису должен быть направлен запрос.

7️⃣ Преобразование протоколов

При необходимости, преобразует запрос в нужный формат.
Например, если API Gateway принимает запрос в HTTP (REST API), то он может преобразовать его в gRPC для внутреннего микросервиса.

8️⃣ Агрегация ответов
Если ответ зависит от нескольких микросервисов, API Gateway собирает данные с каждого и формирует единый ответ.

9️⃣ Возврат ответа клиенту

🔟 Логирование, мониторинг, обработка ошибок и кэширование


API Gateway упрощает взаимодействие клиентов с распределённой системой и обеспечивает её безопасную и управляемую работу, выступая в роли централизованной точки входа.

Про API Gateway с картинками и реальными примерами использования:
🔗 Полный гайд по API Gateway

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3111👍2🥰2❤‍🔥1🤩1
🤯 Потенциальные сокращения сотрудников, которые не владеют AI в 2026 😱

При найме специалистов решает не только опыт, но и скорость, с которой ты учишься новому. Так всегда было, особенно в IT.

Сегодня умение работать с AI становится базовым навыком для всех специалистов.

👉 За 2025 год у меня было несколько кастомных закрытых воркшопов по использованию AI для международных IT-компаний, за которыми ко мне обратились их отделы обучения/HR.

Так что если раньше системным аналитикам не надо было разбираться в Kafka и REST API, то сейчас вопросы по этим темам почти на каждом собеседовании. Я уверена, что через несколько лет с AI будет также.

AI не заменит специалистов.
Но станет обязательным навыком.



Предпосылки к такому мнению? 👇

Meta (запрещена в РФ, разработчики Instagram и Facebook) дала самый громкий сигнал этого года: выживут не самые «умные», а те, кто умеет быстро работать и осваивать новые инструменты [источник].

👉 С 2026 года на ежегодном ревью сотрудников будут оценивать не только по компетенциям в их должности, но и по обязательным знаниям AI-инструментов.

Подробнее рассказала в картинках к посту.



Для всех нас это значит одно - от того, насколько оперативно ты встроишь AI в свои рабочие процессы, настолько же быстро будет расти твоя ценность на рынке и масштабы проектов, которые тебе доверяют.

Поэтому сегодня я работаю над новой программой по внедрению AI в работу системного аналитика. Это не только про промпты, но и про участи аналитика в продуктах с AI-интеграциями, про разработку.

Это то, о чём сегодня мало кто спросит на собеседовании, как 5 лет назад с REST API, но то, что будут спрашивать уже в ближайшем будущем.

🔗 AI-Акселератор для БА и СА
🚀 11 декабря 2025

#AI_for_SA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥13❤‍🔥4👎3🦄2😁1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 8 Шаблонов Проектирования Микросервисов 👩‍💻

1️⃣ API Gateway

Единая точка входа для всех внешних запросов.
Отвечает за маршрутизацию, кэширование, аутентификацию.

2️⃣ Service Registry and Discovery
Динамическое обнаружение и регистрация сервисов.
Это механизм? по которому сервисы сами находят адреса друг друга. Он помогает им корректно взаимодействовать без жёстко прописанных адресов.

3️⃣ Backends for Frontends (BFF)
Отдельные адаптивные бэкенды под каждый вид клиентов. Например: Web и Mobile.
Каждый клиент получает ровно те данные и в том виде, который ему нужен.

4️⃣ Event Driven
Микросервисы обмениваются информацией не напрямую, а через публикацию и подписку на «события» в общем брокере: один сервис публикует сообщение о случившемся изменении, а все заинтересованные сервисы, подписанные на эти события, асинхронно получают и обрабатывают их.

5️⃣ CQRS (Command Query Responsibility Segregation)
Шаблон, в котором операции изменения состояния системы (Commands) отделяются от операций чтения данных (Queries).
• Commands реализуют запись данных, с их валидацией.
• Queries оптимизированы под быстрое получение и агрегации, отчёты.

6️⃣ Database-per-Service
Изоляция данных каждого сервиса в своей БД.
Минимизирует зависимость между микросервисами.
Главная проблема - сложность синхронизации данных.

7️⃣ Оркестрация
Центральный сервис управляет порядком вызовов.
Обеспечивает:
• последовательность выполнения алгоритмов, которые используют разные микросервисы,
• целостность и контроль транзакций.
Пример сервиса-оркерстратора: Camunda.

8️⃣ Хореография
Сервисы обмениваются событиями напрямую через брокер, которые управляет порядком выполнения алгоримов, в которых задействованы разные микросервисы.


⚙️ Как применяют?
• В зависимости НФТ (нефункциональных требований).
• Часто комбинируют несколько подходов.


Сохраните себе шпаргалку и используйте при проектировании архитектуры микросервисов, анализе своих проектов и подготовке к собеседованиям 🙌


Исходник:
png | svg (анимация)

#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥18👍125🔥2
⚙️📞 Camunda и BPMN в микросервисах: успешный кейс для оркестрации процессов техподдержки ⚙️📞

Если вы рассматриваете Camunda для внедрения на проект и пытаетесь понять, «а оно нам точно надо?», или хотите разобраться как работает оркестрация процессов в микросервисной архитектуре — этот эпизод для вас.

🔗 Статья к эпизоду
(внутри доп. материалы и ссылки по Camunda и BPMN)

Обсуждаем реальный опыт внедрения Camunda на действующем высоконагруженном проекте со старшим системным аналитиком.

Рассказываем, где Camunda реально помогает развивать и поддерживать систему, а где добавляет новые головные боли. Когда стоит выбирать Camunda, а когда лучше пойти другим путём.

Слушайте, делайте заметки и делитесь с коллегами!


Эпизод доступен в:
Apple Podcast
Яндекс.Музыка
Telegram
Castbox
Звук
Spotify
RuTube
YouTube
VK Video


Подписывайтесь на GetAnalyst — ваша база знаний в мире системного анализа и архитектуры!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥165😍2
GetAnalyst_Архитектура_микросервисов_FoodDeliveryGA_с_API_Gateway.png
516 KB
🧩 Пример архитектуры микросервисов с API Gateway, где он - точка отказа 🚫

На этой неделе опубликовала подробный гайд по API Gateway.

Теперь показываю первую версию схемы архитектуры для проекта доставки еды #FoodDeliveryGA.

На ней вы можете увидеть, что все Frontend-приложения ходят к Backend через API Gateway, а уже за ним целый зоопарк микросервисов.

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



🔎 Представим типичный сценарий - успешная оплата заказа

После того как платёж прошёл на сервисе платежей, система должна:
1. На Сервисе Заказов поменять статус заказа на «оплачен»
2. Отправить уведомление ресторану о новом заказе - сервис Уведомлений
3. Отправить уведомление пользователю, что заказ оплачен и ушёл в работу - сервис Уведомлений
4. На сервис курьеров отправить запрос на поиск курьера и завершить процесс обработки платежа, не дожидаясь нахождения курьера
5. После всех этих действий показываем пользователю экран "оплачено" на frontend


Если у нас есть только API Gateway:

👉 Либо все микросервисы начинают общаться между собой через него - точка отказа будет знатная

👉 Либо разрешаем микросервисам вызывать друг-друга напрямую
Звучит нормально… до первой диаграммы с прямыми интеграциями, когда появится паутина стрелок в дополнение к существующим 🕸️
Такую схему сложно не только читать, но и поддерживать в реальном проекте. Любое изменение бизнес-процесса = новая порция хаоса в связях между сервисами

👉 Либо мы можем добавить внутренний API Gateway Internal для взаимодействий между сервисами. Но в бизнес-процессах есть фоновые (асинхронные) задачи, параллельность, необходимость откатов и повторных попыток в случае ошибок. API Gateway не должен управлять логикой процессов, это не его функция


Поэтому в микросервисной архитектуре обычно сочетают подходы:
API Gateway + Хореография и/или Оркестрация

Их мы будем подробно разбирать на следующей неделе 🤝


#АрхитектураGA
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥156👍4
🗓 [29.11 - 02.12] Хореография и оркестрация микросервисов: открытый урок 🗓

Когда на Backend не один большой монолит, а десятки микросервисов, главный риск прячется не внутри сервисов, а между ними. Стоит допустить ошибку во взаимодействиях — и запросы «теряются», рассинхронизируются данные, неожиданные сбои...

Мы готовим открытый урок для системных аналитиков, чтобы подробно погрузить вас в подходы к интеграции микросервисов:


💎 Хореография и оркестрация микросервисов: практика проектирования процессов

🗓 29 ноября - 2 декабря [сб-вт]
🕘 Время на обучение: ~4 часа

📚 Урок в записи, смотрете в удобное время

🔗 Зарегистрироваться


👉 План:
1. Основы архитектуры систем: монолит и микросервисы
2. Разработка схемы архитектуры для проекта
3. Оркестрация процессов: практика
4. Введение в брокеры сообщений (RabbitMQ, Kafka)
5. Хореография процессов: практика


Это не просто демо-урок, где вы узнаете 5% от реального объема знаний, а полноформатное обучение, после которого вы получите реальные инструменты и знания, которые помогут значительно поднять планку вашей карьеры.


Прокачивайте своё понимание архитектуры систем! Регистрируйтесь и смотрите занятие в удобное время с 29 ноября по 2 декабря 🙌

-----
Урок проводится в качестве вводного занятия к практической программе "Проектирование архитектуры" для системных аналитиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥231