Constellation DAG
Single-satellite planning assigns steps to orbital windows on one spacecraft. Constellation DAG planning distributes a workload across multiple satellites, routing intermediate data through inter-satellite links (ISL) and ground relays to minimize end-to-end latency.When to use this — Any workload that benefits from parallelism across satellites, or where a single satellite lacks the resources (compute, power, storage, contact time) to complete the job within the deadline.
Architecture
Constellation planning is built on two core components:ContactGraph
The ContactGraph builds a time-expanded graph of all communication opportunities across the fleet within the planning horizon.| Capability | Details |
|---|---|
| ISL detection | Line-of-sight between satellite pairs, accounting for Earth obstruction |
| Ground pass detection | Visibility windows to all 12 ground stations per satellite |
| Routing algorithm | Time-expanded Dijkstra — finds shortest-latency path through ISL and ground hops |
| Fleet construction | buildContactGraph generates the full fleet graph from TLE data |
ConstellationPlacer
The placer runs a 5-phase algorithm to assign steps to satellites:| Phase | Description |
|---|---|
| 1. Preparation | Propagate orbits, build contact graph, compute per-satellite resource envelopes |
| 2. Greedy placement | Score each satellite for each step (resource fit, data locality, contact opportunity) and assign greedily by priority |
| 3. Replication | For critical steps, place redundant copies on backup satellites for fault tolerance |
| 4. Schedule assembly | Build the final timeline with ISL transfer segments between cross-satellite dependencies |
| 5. Metrics | Compute critical path, reliability estimate, and resource utilization |
For fleets of 10 or more satellites, the placer uses a k-d tree spatial index to accelerate nearest-neighbor queries during ISL detection. This keeps planning time sub-linear with fleet size.
ISL Transfer Segments
When two dependent steps are placed on different satellites, the planner inserts ISL transfer segments. These are scheduled during mutual visibility windows and include FEC overhead.API Usage
Create Constellation Plan
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
satellite_ids | string[] | Yes | NORAD catalog IDs of satellites in the constellation |
preset_id | string | No | Use a preset workload (mutually exclusive with custom_job) |
custom_job | object | No | Custom DAG definition |
policy.objective | string | No | min_latency, balanced, max_reliability |
policy.deadline_orbits | number | No | Maximum orbits to complete the workflow |
replication_factor | number | No | Number of redundant copies for critical steps (default: 1) |
Response Structure
The response extends the standard plan format with constellation-specific fields:Metrics
| Metric | Description |
|---|---|
critical_path.duration_s | Longest sequential chain through the DAG including transfers |
critical_path.bottleneck | The step or transfer that dominates the critical path |
satellites_used | Number of satellites with at least one assigned step |
isl_transfers | Number of inter-satellite link transfers in the plan |
reliability | Combined delivery confidence across all paths |
Console Integration
The Console displays constellation plans in a DAG tab powered by React Flow:- Each satellite is a swim lane
- Steps are nodes, colored by satellite assignment
- ISL transfers appear as animated edges between lanes
- The critical path is highlighted
- Clicking a node shows step detail, resource usage, and the scoring breakdown from the placement phase
Pareto Planning
Multi-objective optimization for constellation plans
Agent Protocol
Agent constellation mode for multi-satellite execution

