docs: move lazy analytics cache to redis
This commit is contained in:
@@ -15,16 +15,16 @@ Keep normalized business/source-of-truth relations: categories, merchants, merch
|
||||
|
||||
Add a reporting-date model containing Gregorian and Jalali date attributes, explicit reporting-week boundaries, Persian months/seasons, and weekdays.
|
||||
|
||||
Build idempotent, rebuildable daily base projections containing additive components such as session count, attempt count, successful count, amount sum, and fee sum as approved by the metric catalogue. Derive week/month/season totals by grouping these components through the reporting-date model and recompute ratios from their numerators and denominators.
|
||||
Build idempotent, rebuildable analytics-section queries containing additive components such as session count, attempt count, successful count, amount sum, and fee sum as approved by the metric catalogue. Derive week/month/season totals through the reporting-date model and recompute ratios from their numerators and denominators.
|
||||
|
||||
Create separate metric-specific period projections only for non-additive metrics or query paths proven expensive—for example, exact unique payer-token counts cannot be obtained by summing daily distinct counts. Projection rows record source import/version and freshness.
|
||||
Calculate non-additive metrics such as exact unique payer-token counts directly at their requested grain; never obtain them by summing daily distinct counts. Cache each typed section in Redis under source/cohort and metric-definition revisions.
|
||||
|
||||
Keep normalized fact tables unpartitioned initially. Add targeted indexes from approved API access paths and verified query plans. Introduce PostgreSQL partitioning only through a future ADR supported by measured table growth, query latency, vacuum/maintenance behavior, or retention operations.
|
||||
|
||||
## Consequences
|
||||
|
||||
- The normalized ERD remains semantically correct while dashboards read smaller, purpose-built projections.
|
||||
- Daily components support many calendar groupings without precomputing every possible period.
|
||||
- The normalized ERD remains semantically correct while dashboards reuse disposable Redis results.
|
||||
- Section calculations support approved period groupings without storing calculated facts as PostgreSQL business truth.
|
||||
- Explicit reporting-period definitions and metric provenance make future AI observations traceable.
|
||||
- Lazy calculation, revision invalidation, concurrency deduplication, failure, and stale-state visibility tests become required behavior.
|
||||
- Schema/index/projection details remain subject to data profiling and approved metric/API requirements.
|
||||
- Lazy parallel calculation, Redis revision keys, job deduplication, partial failure, and SSE visibility tests become required behavior.
|
||||
- Schema/index/cache details remain subject to data profiling and approved metric/API requirements.
|
||||
|
||||
Reference in New Issue
Block a user