CS39006 DBMS Lab project: high-QPS LOB, TimescaleDB, Apache AGE, Qiskit arbitrage, security & observability.
- Branches:
dev(default),main(weekly updates). - Linting: Pre-commit runs Ruff (Python) and common checks before each commit.
When cloning the repository, you must include the submodules for the LOB engine components:
git clone --recursive https://github.com/ashuwhy/lob.gitIf you have already cloned the repository without submodules, run:
git submodule update --init --recursiveSetting up the development environment requires installing linting and formatting tools. We use ruff for code formatting and standard checks, and pre-commit to automatically run these checks on every commit.
# 1. Create and activate a virtual environment
python3.12 -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# 2. Install development tools (ruff and pre-commit)
pip install -r requirements-dev.txt
# 3. Initialize git hooks to automatically check your code
pre-commit installThen each commit will run the hooks. To run manually across all files:
pre-commit run --all-files- PRD · Architecture · Database schema · API spec · Module specs · Task list
docker compose up -d
# First run builds the Postgres image (TimescaleDB + AGE on Debian); allow a few minutes.
# When healthy: Postgres 5432, Kafka 9092, Redis 6379, Prometheus 9090, Grafana 3000.
# Proxy (when implemented): http://localhost:8000 · Grafana: http://localhost:3000If you see Docker I/O errors during build (input/output error when committing or pulling), try: restart Docker Desktop, free disk space, then docker builder prune -f and docker compose build --no-cache again.