Skip to main content

Analytics Service

Purpose

Aggregated analytics, reporting, and dashboard data for portfolio and transaction insights.

Responsibilities

  • Event ingestion and aggregation
  • Portfolio analytics computation
  • Spending analysis
  • Dashboard data API
  • Report generation

Non-Responsibilities

  • Real-time balances (Account/Ledger)
  • Payment processing
  • Portfolio management

APIs

MethodEndpointAuthDescription
GET/api/v1/analytics/portfolio/{id}/performanceBearerPortfolio performance
GET/api/v1/analytics/spending/monthlyBearerMonthly spending
GET/api/v1/analytics/dashboardBearerDashboard summary
GET/api/v1/analytics/reports/{type}BearerGenerate report

Database

CollectionKey FieldsDescription
portfolio_analyticsportfolio_id, roi, sharpe, volatilityComputed metrics
spending_aggregatescustomer_id, month, categoriesSpending data
transaction_summariescustomer_id, period, totalsTransaction stats

Kafka

Consumes: PaymentCompleted, PortfolioUpdated, MarketPriceUpdated, LedgerEntryCreated Produces: None

Dependencies

Async: Kafka consumer building read models

Failure Handling

  • Stale data → eventual consistency acceptable
  • Missing events → backfill from batch job

Scaling

MongoDB sharding by customer_id. Heavy read, moderate write.

Security

Customers access own analytics. ADMIN for platform-wide reports.

Observability

Metrics: analytics_query_latency, analytics_events_processed.