Saltar a contenido

Architecture Diagram

flowchart TB
  %% CLIENTS
  subgraph Clients
    WebApp["Web App (Next.js / React)"]
    MobileApp["Mobile App"]
  end

  %% EDGE / API
  subgraph Edge
    APIGW["API Gateway / BFF"]
  end

  WebApp --> APIGW
  MobileApp --> APIGW

  %% CORE DOMAINS
  subgraph CoreDomains["Core Domain Services"]
    LEDGER["Ledger & Cashflow"]
    CAT["Categorization & Intelligence"]
    BUD["Budgeting & Planning"]
    GOALS["Goals & Savings"]
    DEBT["Debt & Credit"]
    FCAST["Forecasting & Advice"]
  end

  %% SUPPORTING DOMAINS
  subgraph SupportingDomains["Supporting Services"]
    ING["Data Ingestion"]
    BILLS["Bills & Subscriptions"]
    INV["Investments & Net Worth"]
    REPRT["Reporting & Tax"]
    HH["Household & Shared Finances"]
  end

  %% GENERIC DOMAINS
  subgraph GenericDomains["Generic / Platform Services"]
    IAM["Identity & Access"]
    CONS["Consent & Privacy"]
    NOTIF["Notifications"]
    DOCS["Document Management"]
    ANALYTICS["Analytics & Insights"]
  end

  %% DATA LAYER
  subgraph DataInfra["Data & Infrastructure"]
    DB["PostgreSQL"]
    CACHE["Redis"]
    BUS["Event Bus (Kafka / SQS)"]
    STORAGE["Object Storage (S3)"]
    MON["Monitoring / Logs"]
  end

  %% EXTERNAL
  subgraph External["External Providers"]
    BANK["Bank APIs (Plaid / Teller)"]
    BROKER["Brokerage / Market Data"]
    MAIL["Email / Push / SMS"]
    OAUTH["OAuth IdPs (Google / Apple)"]
  end

  %% FLOWS
  APIGW --> LEDGER
  APIGW --> CAT
  APIGW --> BUD
  APIGW --> GOALS
  APIGW --> DEBT
  APIGW --> FCAST
  APIGW --> BILLS
  APIGW --> INV
  APIGW --> REPRT
  APIGW --> HH
  APIGW --> DOCS
  APIGW --> IAM

  LEDGER --- DB
  CAT --- DB
  BUD --- DB
  GOALS --- DB
  DEBT --- DB
  FCAST --- CACHE
  DOCS --- STORAGE
  ALL[All Services] -.-> BUS

  ING --> BANK
  INV --> BROKER
  NOTIF --> MAIL
  IAM --> OAUTH

  BUS --> CAT
  BUS --> BUD
  BUS --> FCAST
  BUS --> NOTIF