Files
geointel/docs/QUEUE_ARCHITECTURE.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

43 lines
953 B
Markdown

# Queue Architecture
## Decision
Use Redis + RQ for V1 background jobs.
## Why
- Simple to run locally.
- Easy to understand.
- Good enough for raster processing and AI inference jobs.
- Avoids Celery complexity in the first implementation.
## Queue names
- `default` for lightweight jobs.
- `processing` for raster/vector processing.
- `ai` for detection and segmentation.
- `exports` for GeoJSON/report exports.
## Job lifecycle
1. API validates request.
2. API creates `analysis_run` with status `queued`.
3. API enqueues job with `analysis_run_id`.
4. Worker sets status `running`.
5. Worker writes artifacts and metrics.
6. Worker sets status `completed` or `failed`.
7. Frontend polls analysis run endpoint.
## Failure handling
Failures must store:
- error code,
- error message,
- stack trace in internal logs only,
- user-safe explanation.
## No silent failures
A failed job must be visible in the UI and queryable through the API.