Katkat

Design a Multi-Provider Financial Dashboard

AmazonSoftware Engineer · Onsite

Last updated

Design a financial dashboard that reconciles balances, securities, cryptocurrency, prices, and derived metrics from unreliable external providers. Explain freshness, historical reproducibility, permissions, corrections, outages, and how users can recognize partial or inconsistent data.

Design a financial dashboard that shows account balances, stock holdings, cryptocurrency holdings, and derived portfolio metrics. Data arrives from multiple external providers with different schemas, update frequencies, rate limits, and reliability. Users should see when data was last refreshed and should not be shown silently inconsistent totals.

Constraints & Assumptions

  • A user may connect several provider accounts.
  • Provider APIs can be delayed, duplicated, reordered, temporarily unavailable, or corrected later.
  • Currency conversion and market prices are time-dependent inputs to derived metrics.
  • Read traffic is much higher than connection or account-update traffic.
  • The design must preserve historical snapshots needed to explain displayed values.

Clarifying Questions to Ask

  • Which metrics require near-real-time data, and which can be eventually consistent?
  • Are transactions ingested, or only balance and position snapshots?
  • How fresh must prices and exchange rates be, and what should happen when one source is stale?
  • What retention, audit, privacy, and regional-storage requirements apply?

Follow-up questions

  • How would you prevent a slow provider from delaying every other provider on a user's dashboard?
  • How would you reproduce the exact portfolio value that a user saw yesterday?
  • What changes if the dashboard must stream intraday price updates to millions of connected clients?