This roadmap outlines the implementation plan for all backend functionalities of the Aegis space-debris collision avoidance system. It assumes a modular, scalable architecture built around a core orbital engine and an API gateway serving the frontend.
Recommended Pattern: Modular monolith first, then extract microservices as needed.
+----------------+ +----------------+ +----------------+
| Frontend | <-> | API Gateway | <-> | Core Services |
| (React/3D) | | (REST/WS) | | (Python) |
+----------------+ +----------------+ +----------------+
| - Catalog |
| - Conjunction |
| - Maneuver |
| - Calculator |
| - Alerts |
+----------------+
|
+------------+------------+
| |
+-----------+ +-----------+
| Database | | Job Queue |
| (Postgres)| | (Celery) |
+-----------+ +-----------+
|
+-----------+
| Cache |
| (Redis) |
+-----------+
Tech Stack (Core):
- Language: Python 3.11+ (scientific computing, orbital mechanics libraries)
- API Framework: FastAPI (async, typed)
- Database: PostgreSQL + TimescaleDB (time-series orbital states) + PostGIS (if needed)
- Cache: Redis (real-time object positions, session)
- Queue: Celery + RabbitMQ / Redis (background propagation, large computations)
- Object Storage: AWS S3 or MinIO (reports, TLE archives)
- Containerization: Docker, Kubernetes
Goal: Establish the backend skeleton and connect to public orbital data sources.
- Project scaffolding (FastAPI, Docker, CI/CD)
- Data models (TLE, satellite, debris, orbit state)
- NORAD / Space-Track API client (CelesTrak as fallback)
- TLE parser (Python
sgp4orskyfield) - Scheduled ingestion jobs (Celery beat)
- Initial database schema and migrations
- Set up PostgreSQL with TimescaleDB extension.
- Implement TLE fetch from Space-Track / CelesTrak (e.g.,
python-sgp4for parsing). - Store TLEs with timestamps; keep history for trend analysis.
- Create
catalogtable with metadata (NORAD ID, name, type, RCS, size). - Build a Celery worker to refresh TLEs every 6–12 hours.
- Expose basic
/health,/catalogendpoints.
Milestone: Backend can fetch, store, and serve a catalog of objects with their latest TLEs.
Goal: Compute accurate positions/velocities of all tracked objects over time.
- SGP4/SDP4 propagation module (using
sgp4library) - Cartesian state vector generation (position, velocity)
- Batch propagation service for all objects
- REST endpoint
/objects/{id}/ephemeris - WebSocket stream for live object positions
- Implement a
Propagatorclass that takes TLE and time → ECI/ECEF state. - Pre-compute ephemeris for the next 7 days for all objects (cached in Redis).
- Create a background job that updates ephemeris every hour.
- Expose endpoint:
GET /objects/{id}/ephemeris?start=&end=&step=returns state vectors. - Set up WebSocket channel
/ws/livebroadcasting object positions at 10 Hz for selected objects. - Handle coordinate transformations (TEME → ECI → ECEF) for visualization.
Milestone: Frontend 3D view can display moving satellites/debris based on backend-provided positions.
Goal: Identify close approaches and compute collision probability (Pc).
- Conjunction screening algorithm (spatial grid or all-pairs distance filter)
- Close-approach event detection (Time of Closest Approach, miss distance)
- Collision probability calculator (Foster-1992, Chan, Alfano, Monte Carlo)
- Risk classification and ranking
- REST endpoints:
/conjunctions,/conjunctions/{id} - WebSocket alerts for new high-risk events
- Implement a spatial hash grid (or use
scipy.spatial.cKDTree) to find pairs below a threshold (e.g., 100 km). - For each pair, run a coarse sweep over next 7 days to find TCA and minimum distance.
- Filter events with miss distance < 5 km (configurable).
- Implement covariance propagation (use state transition matrix or simplified covariance).
- Implement at least two probability methods (e.g., Foster-1992 and Monte Carlo).
- Store conjunction events in
conjunctionstable with risk level. - Expose
/conjunctions?from=&to=&risk_threshold=. - Emit WebSocket event when a new high-risk conjunction is detected.
Milestone: Backend can list and detail conjunction events with Pc and miss distance.
Goal: Generate fuel-efficient evasive maneuvers for high-risk conjunctions.
- Maneuver optimizer (delta-v minimization)
- Fuel consumption calculator
- Post-maneuver conjunction re-evaluation
- REST endpoint:
/conjunctions/{id}/maneuvers - Endpoint to accept/schedule a maneuver
- Build a maneuver model: given object mass, current orbit, and desired post-maneuver orbit, compute delta-v.
- Define search space: maneuver type (radial, along-track, cross-track, combined), magnitude, and execution time.
- Use an optimizer (e.g.,
scipy.optimize.differential_evolutionor genetic algorithm) to find candidate maneuvers that:- Increase miss distance to safe threshold (e.g., > 10 km)
- Minimize total delta-v / fuel
- Respect constraints (available fuel, maneuver lead time)
- For each candidate, re-run conjunction prediction to get post-maneuver Pc and miss distance.
- Return ranked list with delta-v, fuel mass, execution time, and new Pc.
- Add endpoint
POST /conjunctions/{id}/maneuvers/acceptto store selected maneuver. - Optionally integrate with an external mission planning system (if available).
Milestone: Backend can recommend 3–5 maneuvers with fuel and safety metrics.
Goal: Expose ad-hoc probability calculation as an API for the frontend calculator page.
- Endpoint:
POST /calculator/probability - Support for manual TLE input or object IDs
- Multiple calculation methods selectable
- Return Pc, miss distance, relative velocity, covariance ellipsoid data
- Design request schema:
{object1, object2, method, time_window, confidence_level}. - Reuse propagation and probability modules from Phase 2.
- Add Monte Carlo simulation with configurable number of samples (e.g., 10k, 100k).
- Return detailed results: Pc histogram, closest approach geometry, covariance matrices.
- Enable synchronous calculation for small requests; async job for heavy Monte Carlo.
Milestone: Frontend calculator can get probability results via API.
Goal: Provide the flagship landing page feature — predictive risk heatmap and anomaly detection.
- ML model for future conjunction risk (e.g., time-series forecasting)
- Anomaly detection service for unusual orbital behavior
- API endpoints:
/predictive/heatmap,/predictive/anomalies - Real-time streaming of predictions
- Collect historical data: past conjunctions, solar activity, object density, maneuver history.
- Train a gradient boosting model (XGBoost/LightGBM) or LSTM to predict high-risk zones for next 7 days.
- Implement unsupervised anomaly detection (e.g., Isolation Forest) on orbital element changes.
- Expose
/predictive/heatmap?start=&end=returning 3D grid values for frontend overlay. - Run inference on a schedule (e.g., every 6 hours) and cache results.
- Add confidence scores and explainability (SHAP values) for the UI.
Milestone: Landing page can show an AI risk heatmap and anomaly feed.
Goal: Enable user notifications, exportable reports, and compliance.
- Alert service (email, webhook, in-app)
- Report generation (PDF/CSV/JSON)
- Audit logging for all user actions
- REST endpoints:
/alerts,/reports,/audit
- Implement an alert system using Redis Pub/Sub + email/webhook connectors.
- Create alert rules: new high-risk conjunction, threshold crossed, maneuver executed.
- Build a report generator using
weasyprintorreportlabfor PDF. - Provide endpoints to export conjunction reports, maneuver plans, and fuel logs.
- Log user actions (acknowledge, accept maneuver, export) in
audit_logstable. - Create an admin dashboard for viewing audit trails.
Milestone: Users can configure alerts and export reports.
Goal: Ensure the system can handle thousands of objects and concurrent users.
- Load testing and performance tuning
- Caching strategy refinement
- Kubernetes deployment with auto-scaling
- Monitoring and observability (Prometheus, Grafana)
- Security hardening (OAuth2, rate limiting)
- Implement request caching for
/catalogand/conjunctions(Redis, short TTL). - Use WebSocket connection pooling and Redis pub/sub for broadcasting.
- Optimize database queries with indexes on time and object IDs.
- Containerize and deploy to Kubernetes with horizontal pod autoscaling.
- Set up Prometheus metrics and Grafana dashboards for API latency, job queue depth.
- Implement OAuth2/JWT for authentication and role-based access.
- Add rate limiting and API key management.
Milestone: Production-ready, scalable backend.
| Phase | Description | Effort |
|---|---|---|
| 0 | Foundation & data ingestion | 1–2 weeks |
| 1 | Orbital propagation engine | 2–3 weeks |
| 2 | Collision prediction & risk engine | 3–4 weeks |
| 3 | Maneuver recommendation engine | 2–3 weeks |
| 4 | Standalone calculator | 1–2 weeks |
| 5 | AI/ML predictive shield | 3–4 weeks |
| 6 | Alerts, reports, audit | 2 weeks |
| 7 | Production hardening | 2 weeks |
Total estimated: 16–24 weeks for a full MVP (without AI) and ~20–28 weeks including AI.
| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Service health |
/api/catalog |
GET | Filterable object catalog |
/api/objects/{id} |
GET | Object detail + latest TLE |
/api/objects/{id}/ephemeris |
GET | Ephemeris data |
/api/conjunctions |
GET | List of conjunction events |
/api/conjunctions/{id} |
GET | Event detail |
/api/conjunctions/{id}/maneuvers |
GET | Maneuver recommendations |
/api/conjunctions/{id}/maneuvers/accept |
POST | Accept a maneuver |
/api/calculator/probability |
POST | Ad-hoc probability calculation |
/api/predictive/heatmap |
GET | AI risk heatmap |
/api/predictive/anomalies |
GET | Anomaly feed |
/api/alerts |
GET | Alert inbox |
/api/reports/export |
POST | Generate report |
/ws/live |
WebSocket | Real-time object positions |
/ws/alerts |
WebSocket | Real-time alert push |
This roadmap gives a complete, executable plan from data ingestion to production, covering all features described in the frontend design. Adjust priorities based on your MVP requirements and available resources.