Стримьте транзакции через Kafka в стрим-процессор, который предагрегирует их в OLAP-хранилище, чтобы дашборды читали крошечные предвычисленные rollup-ы вместо сканирования сырых событий. При миллионах транзакций/день вы никогда не запускаете SUM() по сырой таблице на каждую загрузку страницы — вы агрегируете один раз, на записи.
Архитектура
Payment svc ──▶ Kafka topic ──▶ Flink/Kafka Streams ──┬─▶ OLAP (ClickHouse/Druid) ◀── Dashboard
(txn events) (buffer,replay) (windowed pre-agg) │ (per-minute rollups) (read)
└─▶ S3/Parquet (raw, replay/audit)
state store ◀──────────┘ (exactly-once checkpoints)
