Container Diagram
This document describes the main containers of the system using the C4 Container level.
Containers
- Backend API: Core logic for data ingestion, scheduled jobs to pull weekly data, strategy execution, trade logic and signal generation , and integration with brokers (Python-based).
- Backtesting Module: Validates strategy performance
- Database: Stores historical data, strategy configs, results, and logs (e.g., MongoDB, Parquet files).
- Web UI: User interface for strategy management, analysis, and reporting (e.g., Svelte/Vue frontend).
- CMS: Stores backtest strategy and algorithms and allows financial export to vett strategies (VitePress docs site)
- External Services: Data providers, broker APIs, news/event feeds.
- External Services: Data providers, broker APIs, news/event feeds, identity provider (Auth0 Free).
- Hosting & Deployment:
- ☁️ Barebones linux server & Deployment
Linux server - For low cost and open source friendly Docker – Containerize your app for portability Prefect – Workflow orchestration (e.g., weekly jobs) FastAPI – REST API for exposing strategy results Svelte / Vue – Interactive dashboards for visualization
Diagram
Interactions
- Web UI communicates with Backend API via HTTP/REST.
- Web UI authenticates with Auth0 using OIDC Authorization Code with PKCE; receives ID/Access tokens.
- Backend API validates incoming bearer JWTs using Auth0 JWKS and enforces scopes/roles (as needed).
- Backend API fetches data from external services and stores results in the database.
- Backend API sends trade orders to broker APIs.