WS4 Agent ModeConstellation Execution extends the Operator Agent to orchestrate workloads across multiple satellites. A DAG-based execution plan is distributed across the constellation, with steps assigned to individual satellites and data transferred between them via inter-satellite links (ISLs). The agent runtime handles step lifecycle, ISL coordination, and automatic failover when a satellite becomes unhealthy.
Constellation mode requires a multi-satellite deployment created from a constellation DAG plan. See CAE Constellation DAG for how plans are generated.
Each step in the constellation DAG follows a deterministic state machine:
Pending --> Executing --> Completed | v FailedOver
State
Description
Pending
Step assigned but waiting for dependencies or resources
Executing
Step actively running on the assigned satellite
Completed
Step finished successfully, output available for downstream steps
FailedOver
Step reassigned to another satellite due to health check failure
When a step completes, its output data is made available for dependent steps. If the dependent step is assigned to a different satellite, an ISL transfer is initiated automatically.
The agent runtime continuously monitors satellite health during constellation execution. A failover is triggered when any of the following conditions are detected:
Condition
Threshold
Description
Battery critical
< 10%
Insufficient power to complete compute step
Thermal exceedance
> 75C
Risk of hardware damage or thermal shutdown
Compute unavailable
Battery < 15%
Not enough power headroom for sustained compute
Failover reassigns the step to the next eligible satellite in the DAG. If no eligible satellite is available, the step is marked as failed and the constellation plan terminates with a partial completion status.
When a failover occurs, the following sequence executes:
The current satellite emits constellation.failover with the reason
The orchestrator selects an alternate satellite from the DAG
The step is reassigned and a constellation.failover_acknowledged event is emitted
The new satellite begins execution from the last checkpoint (if available)
Link quality between any two satellites is computed dynamically based on distance and eclipse state:
Parameter
Formula / Value
Distance factor
1 - (distance_km / 5000) * 0.6
Eclipse penalty
0.9 (applied when either endpoint is in eclipse)
Effective bandwidth
100 Mbps * quality
Propagation latency
distance_km / c + 2ms (where c = 299,792 km/s)
Max range
5,000 km (quality = 0 beyond this)
The 2ms additional latency accounts for onboard processing and protocol overhead at each hop. For multi-hop transfers, latency is cumulative across all hops.
Example: Two satellites 2,000 km apart, one in eclipse: