Касса запрашивает применимые условия лояльности до окончательного подтверждения расчёта, а начисление или списание фиксируется при согласованном статусе продажи. Чтение баланса и его изменение — разные операции.
В какой момент касса должна обращаться к сервису лояльности, какие данные запрашивать и как должно быть организовано взаимодействие между кассой, сервисом и хранилищем данных?
Касса запрашивает применимые условия лояльности до окончательного подтверждения расчёта, а начисление или списание фиксируется при согласованном статусе продажи. Чтение баланса и его изменение — разные операции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Касса запрашивает применимые условия лояльности до окончательного подтверждения расчёта, а начисление или списание фиксируется при согласованном статусе продажи. Чтение баланса и его изменение — разные операции.
Касса обращается к API сервиса, а не напрямую к его хранилищу. Передаются идентификатор клиента, состав покупки, сумма и ID операции в необходимом объёме. Списание баллов требует атомарной проверки, идемпотентности и правил отмены. При недоступности сервиса поведение должно быть явно согласовано; нельзя молча обещать скидку или списание.