Это исторически сложившаяся событийная модель: источник отдаёт события в JSON, чтобы схема могла гибко расширяться без частых изменений контрактов и жёсткой табличной структуры. Со временем может потребоваться больше аналитического контекста, и добавить такие данные в JSON обычно быстрее и проще. Да, для DWH это не самый оптимальный формат, поэтому дальше мы нормализуем события и приводим их к аналитической модели.
Да, соглашусь, часть терминов можно было подробнее расшифровать для внешнего читателя.
Если совсем упростить, у нас есть три события: бонусы начислили, бонусы потратили, либо бонусы сгорели по сроку жизни. Поэтому это не совсем два направления движения. Сгорание для нас тоже отдельное событие, потому что его нужно корректно отразить в учёте.
По второй части вы в целом правы: бонусы универсальны по расходованию. Пользователь не обязан тратить бонус, начисленный за одно действие, строго на ту же категорию действий. Но для финансового учёта нам всё равно нужно понимать, из какого начисления и в какой доле была закрыта каждая трата. Поэтому и появляется FIFO-сопоставление между начислениями, списаниями и сгораниями.
Спасибо за комментарий!
Это исторически сложившаяся событийная модель: источник отдаёт события в JSON, чтобы схема могла гибко расширяться без частых изменений контрактов и жёсткой табличной структуры. Со временем может потребоваться больше аналитического контекста, и добавить такие данные в JSON обычно быстрее и проще. Да, для DWH это не самый оптимальный формат, поэтому дальше мы нормализуем события и приводим их к аналитической модели.
Спасибо за комментарий!
Да, соглашусь, часть терминов можно было подробнее расшифровать для внешнего читателя.
Если совсем упростить, у нас есть три события: бонусы начислили, бонусы потратили, либо бонусы сгорели по сроку жизни. Поэтому это не совсем два направления движения. Сгорание для нас тоже отдельное событие, потому что его нужно корректно отразить в учёте.
По второй части вы в целом правы: бонусы универсальны по расходованию. Пользователь не обязан тратить бонус, начисленный за одно действие, строго на ту же категорию действий. Но для финансового учёта нам всё равно нужно понимать, из какого начисления и в какой доле была закрыта каждая трата. Поэтому и появляется FIFO-сопоставление между начислениями, списаниями и сгораниями.