Fallback на упавший сервис продаёт товар, которого нет на складе, но отличить такие места от безопасных помогает одно правило
Каталог, склад, заказы, расчёты с продавцом: любой из них может лечь, и вопрос не в том, как это предотвратить, а в том, какие запросы отдавать с деградацией, а какие обрывать. Разбор на dev.to предлагает критерий: обратима ли ошибка, если сервис угадал неверно.
Лёг каталог: отдавайте кэшированный снимок или пустую выдачу. Цена устарела на пару секунд, товар выглядит недоступным, и это чинится само, как только каталог вернётся.
Лёг склад или сервис выплат: fallback запрещён. Отгрузку и ушедший продавцу платёж не откатить UPDATE'ом, а сверка склада задним числом означает, что последнюю единицу продали пяти покупателям сразу. 503 с предложением повторить дешевле.
Что делать: пройти по своим fallback'ам и убрать те, что стоят перед необратимой операцией.
Post #7946
459
