Serving с учетом текущего состояния корзины
Корзина меняется в текущей сессии. Как online serving должен учитывать add/remove item, cache invalidation и fallback?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Recommendation service пересчитывает candidates на значимые изменения корзины, использует short TTL/cache, валидирует актуальный cart state и имеет degraded fallback.
Полный разбор
Cart state является частью запроса, поэтому рекомендации должны меняться при add/remove item, смене адреса/магазина, промо или availability. При каждом событии не обязательно запускать тяжелую модель с нуля: item candidates и features можно хранить offline, а online слой быстро агрегирует по текущей корзине и rerank-ит shortlist.
Cache должен учитывать cart signature: sorted item ids, quantities, store/region, user segment и experiment arm. TTL короткий, а перед ответом применяются фильтры already-in-cart и availability. Если сервис не успел ответить, включается fallback: category popular, curated complements или скрытие блока.
Мониторинг: p95/p99 latency, stale response rate, cache hit, empty response, fallback share, invalid recommendations и mismatch между cart state на запросе и в ответе.
Теория
Session-aware serving требует согласованности между быстрым пользовательским состоянием и более медленными ML артефактами.