Design a financial data aggregation and analytics system
Design an end-to-end system that collects financial data from multiple third-party apps (via credential-based access or open banking APIs), processes and stores it, and serves analytics to both end-users and admins.
Key areas to cover:
- Ingestion: secure credential storage (vault), scheduled scraping vs. webhook-based feeds, idempotent pipelines
- Storage: relational DB for structured transactions, Elasticsearch for full-text/aggregation queries (inverted index internals may be probed); master-slave replication for read scaling
- Processing: stream vs. batch for aggregations, normalization across institutions
- Analytics layer: user-facing dashboards (spending trends, net worth) vs. admin-level cross-user analytics (fraud signals, cohort analysis)
- Caching: pre-computed rollups in Redis for hot queries
Expect tradeoff discussions on DB choice, consistency vs. availability, and how the design evolves when admin analytics requirements are added mid-interview.
asked …