Summary
README.md is stale and no longer describes the real system. Its sequence diagram shows synchronous ML inference (ML-->Tests: Analysis results) and there is zero mention of RQ workers, Redis pub/sub + SSE, MinIO/S3 storage, or the Prometheus/Grafana/Loki monitoring stack.
Evidence
README.md sequence diagram (lines ~114-149): requests get analysis results directly in the response.
- Real flow: routes enqueue RQ jobs (
routes/upload_routes.py:33-35 get_ml_queue, queue ml), an RQ worker runs ml/tasks.run_inference and writes scores to the DB asynchronously.
- ESP32 push events use Redis pub/sub + SSE (
utils/esp32_connection_manager.py, routes/esp32_routes.py:95 /api/esp32/stream) — undocumented in README.
- Storage is local
uploads/ or MinIO/S3 behind STORAGE_BACKEND — undocumented.
- Deploy is Oracle Cloud via GHCR + watchtower — undocumented.
- README also documents
/api/test/... routes that are actually /api/tests/... (both routes/test_routes.py and routes/upload_routes.py use /api/tests).
The accurate docs already exist: API_ROUTES.md (~50KB) and docker/README.md.
Suggested fix
Rewrite README.md to match the current architecture: async inference via RQ, event-delivery pipeline (Redis pub/sub + SSE connection manager), hybrid storage, and the deployment topology. Keep the utility-script section (it's current). Update the stale /api/test references to /api/tests.
Summary
README.mdis stale and no longer describes the real system. Its sequence diagram shows synchronous ML inference (ML-->Tests: Analysis results) and there is zero mention of RQ workers, Redis pub/sub + SSE, MinIO/S3 storage, or the Prometheus/Grafana/Loki monitoring stack.Evidence
README.mdsequence diagram (lines ~114-149): requests get analysis results directly in the response.routes/upload_routes.py:33-35get_ml_queue, queueml), an RQ worker runsml/tasks.run_inferenceand writes scores to the DB asynchronously.utils/esp32_connection_manager.py,routes/esp32_routes.py:95/api/esp32/stream) — undocumented in README.uploads/or MinIO/S3 behindSTORAGE_BACKEND— undocumented./api/test/...routes that are actually/api/tests/...(bothroutes/test_routes.pyandroutes/upload_routes.pyuse/api/tests).The accurate docs already exist:
API_ROUTES.md(~50KB) anddocker/README.md.Suggested fix
Rewrite
README.mdto match the current architecture: async inference via RQ, event-delivery pipeline (Redis pub/sub + SSE connection manager), hybrid storage, and the deployment topology. Keep the utility-script section (it's current). Update the stale/api/testreferences to/api/tests.