18 - Database Structure
Overview
Architecture Diagram
┌──────────────────────────────────────────────────────────────────────────────┐
│ Database Architecture │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ 5 Separate Databases │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ openalgo.db │ │ logs.db │ │ latency.db │ │
│ │ (Main DB) │ │ (Traffic) │ │ (Performance) │ │
│ │ │ │ │ │ │ │
│ │ - Users │ │ - traffic_logs │ │ - order_latency│ │
│ │ - Auth tokens │ │ - ip_bans │ │ │ │
│ │ - API keys │ │ - error_404 │ │ Metrics: │ │
│ │ - Settings │ │ - api_tracker │ │ - RTT │ │
│ │ - Orders │ │ │ │ - Overhead │ │
│ │ - Strategies │ │ │ │ - Percentiles │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ sandbox.db │ │ historify.duckdb│ │
│ │ (Paper Trade) │ │ (Market Data) │ │
│ │ │ │ │ │
│ │ - Virtual ₹1Cr │ │ - OHLCV data │ │
│ │ - Positions │ │ - Watchlists │ │
│ │ - Holdings │ │ │ │
│ │ - Trades │ │ DuckDB format │ │
│ │ - Daily P&L │ │ (columnar) │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘Database 1: Main Database (openalgo.db)
Location
Core Tables
Database 2: Logs Database (logs.db)
Location
Tables
Database 3: Latency Database (latency.db)
Location
Table: order_latency
Metrics Tracked
Metric
Description
Database 4: Sandbox Database (sandbox.db)
Location
Purpose
Tables
Sandbox Configuration
Config Key
Default
Description
Database 5: Historical Data (historify.duckdb)
Location
Format
Table: market_data
Connection Pooling
SQLite Configuration
PostgreSQL Configuration (Production)
Security Features
Encryption
Data Type
Method
Caching Strategy
Cache
TTL
Purpose
Database Relationships
Key Files Reference
File
Purpose
Last updated