В корзине пользователь может добавлять товар и менять количество. Какой дизайн схемы событий обычно удобнее для аналитики и контроля качества данных?

AОдно событие cart_updated с полем cart_json и user_id, куда передаётся вся корзина одной большой строкой при каждом изменении
BТолько клики plus_click и minus_click с user_id, без product_id и quantity, чтобы зафиксировать сам факт нажатия
CАтомарные события cart_item_added и cart_item_removed со свойствами cart_id, product_id и quantity_delta
DСнимки cart_state с полями items_json и user_id раз в день, без отдельных событий по добавлению или удалению товаров
Правильный ответ. Атомарные события с понятными свойствами проще валидировать и использовать в воронках, чем огромные снимки состояния.

Разбор

События с quantity_delta позволяют считать добавления, удаления и итоговые количества без тяжёлых парсингов. Их проще контролировать через инварианты: обязательные поля, разумные диапазоны, отсутствие пустых идентификаторов. Полный снимок корзины строкой ухудшает логирование, усложняет джойны и может ломаться при изменениях формата. Для аналитики пути пользователя атомарные события обычно дают более прозрачную картину.

Тренировать продукт в Telegram

Ещё вопросы по теме «Инструментация и качество данных»