Skip to content

Commit

Permalink
Sprint 1. Task 2
Browse files Browse the repository at this point in the history
  • Loading branch information
Gehart committed Dec 24, 2024
1 parent ef88fa5 commit e58c60a
Show file tree
Hide file tree
Showing 2 changed files with 2,445 additions and 1 deletion.
38 changes: 37 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Задание1. Микрофронтенды

Выбором фреймворка для микрофронтендов станет Webpack Module Federation. Для этого несколько причин:

- в этом приложении будет разумно использовать общие компоненты в приложении
Expand Down Expand Up @@ -137,4 +139,38 @@
└── success-icon.svg
```
```

# Задание 2. Разделение монолита на микросервисы

Схема draw.io (файл): [arch_template_task2.drawio](arch_template_task2.drawio)


### Проектирование

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

- Сервис авторизации пользователей - сервис управляет авторизацией, определяет роль пользователя в системе, сохраняет данные о пользователе.
- Сервис заказов - сервис собирает данные о товарах и услугах, которые приобретает пользователь. Предоставляет информацию о товарах сервису оплаты и аналитики.
- Сервис аукционов - отвечает за функционал аукционов
- Сервис товаров и услуг - хранит информацию о товарах и услугах. Позволяет пользователям редактировать эту информацию.
- Сервис оплат - занимается интеграцией с платежными системами
- Сервис поддержки пользователей - отвечает за взаимодействие пользователей и техподдержки.
- Сервис аналитики - отвечает за сбор информации от различных сервисов, нужно для генерации аналитических отчетов. Здесь пригодится специализированное решение для бд. Как предложение, можно использовать ClickHouse как БД, оптимизарованную под аналитические задачи.

На время разработки микросервисов, нам пригодится старый монолит, доступ к которому будет обеспечиваться через ACL.

Фронтенд приложения можно разбить на микрофронтенды. Здесь тоже можно применить разделение по бизнес функциям.

Для маршрутизации к микросервисам будем использовать обратный прокси сервер nginx.


### Межсервисные взаимодействия

1 - Сервис заказов получает информацию о товарах и услугах по внешнему id товаров и услуг.

2, 3, 4, 5 - Сервисы заказов, авторизации, товаров и услуг, оплат отправляют информацию в сервис аналитики.

6 - Сервис оплат запрашивает информацию о стоимости заказа для создания транзакции в платежном сервисе.

7, 8 - Взамодействие с внешними платежными сервисами - создание и подтверждение платежа, отмена платежа
Loading

0 comments on commit e58c60a

Please sign in to comment.