Sobes.tech
Senior
71

Il prodotto è arrivato con la richiesta di sviluppare un servizio di Fedeltà, che in base al numero di ordini consegnati (sistema principale degli ordini OMS) fornirà al servizio di pagamento (cassa) la dimensione dello sconto. Il servizio di Fedeltà al momento non avrà una parte front-end, bisogna solo memorizzare nel database una mappatura tra il numero di ordini consegnati e non cancellati e lo sconto applicato. Qualcosa come: Ordini Sconto [percentuale]% [percentuale]% [percentuale]% [percentuale]% È necessario progettare un servizio, proporre meccanismi di integrazione con il Servizio di pagamento e il Servizio di gestione degli ordini. È necessario progettare l'architettura del servizio, che possa essere consegnata al team di sviluppo e deployment.

Le aziende dove è stato chiesto
СБЕРСБЕР

Risposta dell'AI

sobes.tech AI

Для сервиса Лояльности, который на основе количества доставленных и не отменённых заказов выдаёт размер скидки, предлагаю следующую архитектуру и интеграционные механизмы:

Архитектура сервиса

  • Хранение данных: В базе данных хранится таблица с маппингом "минимальное количество заказов" → "размер скидки".
  • API: RESTful или gRPC сервис с методами:
    • Получить скидку по количеству заказов
    • Обновить правила скидок (администрирование)

Интеграция с OMS (сервис управления заказами)

  • OMS отправляет события о доставленных и не отменённых заказах (например, через очередь сообщений или webhook).
  • Сервис Лояльности подписывается на эти события и обновляет внутренний счётчик заказов для каждого пользователя.

Интеграция с сервисом оформления заказа (cashier)

  • При оформлении заказа cashier запрашивает у сервиса Лояльности текущий размер скидки для пользователя.
  • Сервис Лояльности возвращает актуальную скидку на основе количества доставленных заказов.

Технические детали

  • Использовать кеширование для ускорения ответов cashier.
  • Обеспечить идемпотентность обработки событий от OMS.
  • Логировать изменения скидок для аудита.

Пример структуры таблицы скидок

Минимальное количество заказов Скидка (%)
1 5
5 10
10 15

Такой подход позволит легко масштабировать сервис и добавлять новые правила скидок без изменения клиентских сервисов.