გაატარეთ ტრანზაქციები Kafka-ში stream processor-ში, რომელიც წინასწარ აჯამებს (pre-aggregate) OLAP store-ში, რომ dashboard-ები კითხულობდნენ პაწაწინა წინასწარ გამოთვლილ rollup-ებს raw event-ების სკანირების ნაცვლად. მილიონობით txn/დღეზე არასდროს გაუშვათ SUM() raw ცხრილზე ყოველ page load-ზე — აჯამებთ ერთხელ, write-ზე.
არქიტექტურა
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)
