WARNING: ДЗ очень сырое, все, кроме ES модели, делалось наспех из-за нехватки времени и наличия опыта решения подобных задач.
- Жизненный цикл заказа
- Основная идея крутится вокруг изменения статуса заказа
- Создание и управление заказом
- Процессы, доступные только клиенту и менеджеру
- Отдел контроля качества
- Контекст включает в себя процессы, необходимые или непосредственно участвующие в проверке заказа со стороны менеджера
- Система ставок
- Контекст в основном запускается событиями из контекста жизненного цикла заказа, определенно точно следует делать его изолированным и мало связным с другими, для простоты удаления из системы в случае проблем с налоговой
- Система мэтчинга
- Контекст с единственным процессом, скорее всего будет поглощен другим контекстом
- Хотя он прост только с точки зрения бизнеса, с технической стороны он должен быть отдельным слоем
- Инвентаризация и склад
- Включает в себя взаимодействие с внешними поставщиками и службами доставки
- Напрямую зависит от системы мэтчинга
- Выплаты денежных средств
- В основном про асинхронные задачи
- В целом содержит все денежные процессы
- Регистрация и тестирование воркера
- Управление и прохождение входных тестов
- Работа с заявкой воркера
Вкратце, был выбран микс (монолитное ядро и несколько сервисов) по тем же причинам, что и указаны в уроке, а именно:
- Много вызовов между сервисами
- ТТМ в теории одинаковый как для монолита, так и для сервисов
- Отдельные сервисы позволят тестировать бизнес гипотезы
- Высоконагруженные и слабо связанные сервисы можно вынести из ядра
- (Т) - техническое, (Б) - бизнес, (Д) - данные
- Очень непонятные связи и вызовы, сложно читать
- Не добавил бизнес логику для запроса помощи от клиента
- (Т) Резервация средств на счету клиента
- (Б) Повторная подача заявки воркером. Борьба с перебором ответов
- (Б) Кто занимается доставкой печенек? (выбрать какой-либо вариант для первой ДЗ)
- (Б) Добавление/регистрация клиентов, менеджеров, сотрудников склада
- Нужно добавлять логику для связи с клиентом при проверке заказа?
- Не нужно
- Является ли логика, связанная с начислением штрафа, технической?
- Да
- (Б) Расходников нет в наличии, нужно ли заказывать у поставщика?
- Не играет роли в рамказ ДЗ
- (Б) Кто занимается доставкой печенек?
- Внешняя система, то есть поставщик печенек