Skip to content

End-to-End Traffic Flow

  1. Browser or Electron client submits a simulation request over HTTPS to the cloud edge endpoint.
  2. Edge reverse proxy forwards request over the Netbird tunnel to app-1 (10.42.20.11:8000).
  3. FastAPI validates payload, writes job metadata to PostgreSQL, and enqueues the job in Redis.
  4. Worker VM pops the queue item and downloads input files from object storage.
  5. Worker executes CEA pipelines (demand, costs, networks) and emits progress events.
  6. Worker uploads Parquet outputs directly to Hetzner Object Storage.
  7. API marks completion and publishes job-success over SocketIO to update clients.
sequenceDiagram
    participant U as User
    participant E as Edge
    participant A as API
    participant R as Redis
    participant W as Worker
    participant S as Object Storage
    U->>E: Submit job
    E->>A: Forward via Netbird
    A->>R: Enqueue job
    W->>R: Pop job
    W->>S: Download inputs
    W->>S: Upload results
    W-->>A: Progress events
    A-->>U: Status and artifact links

Tip

Treat SocketIO as the real-time UX channel and object storage as the source of truth for completed outputs.