Skip to main content

Constellation Execution

WS4 Agent Mode Constellation 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.

ConstellationState

Each agent participating in a constellation deployment maintains a ConstellationState that tracks its view of the distributed execution.
FieldTypeDescription
assigned_stepsmapSteps assigned to this satellite, keyed by step ID
active_transfersarrayISL transfers currently in progress
completed_stepssetStep IDs that have completed successfully
failed_over_stepssetStep IDs that were reassigned due to failover

Step Lifecycle

Each step in the constellation DAG follows a deterministic state machine:
Pending --> Executing --> Completed
                |
                v
           FailedOver
StateDescription
PendingStep assigned but waiting for dependencies or resources
ExecutingStep actively running on the assigned satellite
CompletedStep finished successfully, output available for downstream steps
FailedOverStep 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.

Automatic Failover

The agent runtime continuously monitors satellite health during constellation execution. A failover is triggered when any of the following conditions are detected:
ConditionThresholdDescription
Battery critical< 10%Insufficient power to complete compute step
Thermal exceedance> 75CRisk of hardware damage or thermal shutdown
Compute unavailableBattery < 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:
  1. The current satellite emits constellation.failover with the reason
  2. The orchestrator selects an alternate satellite from the DAG
  3. The step is reassigned and a constellation.failover_acknowledged event is emitted
  4. The new satellite begins execution from the last checkpoint (if available)

ISL Transfer Lifecycle

Data transfers between satellites follow a multi-hop model. Each hop represents a direct ISL link between two satellites in range.
started --> hop_completed (x N) --> completed + quality_report
StateDescription
startedTransfer initiated between source and destination satellites
hop_completedA single ISL hop finished, includes quality metrics for that segment
completedAll hops finished, data delivered to destination satellite
quality_reportAggregate link quality metrics for the full transfer path
Link quality between any two satellites is computed dynamically based on distance and eclipse state:
ParameterFormula / Value
Distance factor1 - (distance_km / 5000) * 0.6
Eclipse penalty0.9 (applied when either endpoint is in eclipse)
Effective bandwidth100 Mbps * quality
Propagation latencydistance_km / c + 2ms (where c = 299,792 km/s)
Max range5,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:
  • Distance factor: 1 - (2000 / 5000) * 0.6 = 0.76
  • Eclipse penalty: 0.76 * 0.9 = 0.684
  • Effective bandwidth: 100 * 0.684 = 68.4 Mbps
  • Propagation latency: 2000 / 299792 + 0.002 = 8.67ms

Event Enrichment

All constellation events are enriched with real-time satellite telemetry at the moment the event is generated:
FieldTypeDescription
actual_battery_percentnumberBattery level at event time
actual_temperature_cnumberTemperature at event time
latnumberGeodetic latitude
lonnumberGeodetic longitude
altitude_kmnumberAltitude above Earth surface
in_eclipsebooleanWhether the satellite is in Earth’s shadow
This telemetry is sourced from the SimulatedSatellite executor, which integrates with the Simulation Sessions service for subsystem state.

Event Types

Constellation Events

EventDescriptionKey Payload Fields
constellation.step_assignedStep assigned to a satellitestep_id, satellite_id, dependencies
constellation.step_startedStep execution beginsstep_id, satellite_id
constellation.step_completedStep finished successfullystep_id, duration_s, data_output_mb
constellation.failoverStep failover initiatedstep_id, from_satellite, reason
constellation.failover_acknowledgedFailover accepted by new satellitestep_id, to_satellite
constellation.satellite_completeAll steps on a satellite are donesatellite_id, steps_completed, steps_failed_over

ISL Events

EventDescriptionKey Payload Fields
isl_transfer.startedISL data transfer initiatedfrom, to, data_mb, hop_count
isl_transfer.hop_completedSingle hop finishedfrom, to, hop_index, quality, latency_ms
isl_transfer.completedFull transfer deliveredfrom, to, total_duration_s, data_mb
isl_transfer.quality_reportAggregate path qualityavg_quality, min_quality, total_latency_ms, effective_bandwidth_mbps

Integration with SimulatedSatellite

In simulation mode, the constellation executor uses the SimulatedSatellite backend to model each satellite’s behavior. This executor:
  • Maintains per-satellite subsystem state (battery, thermal, memory, CPU)
  • Applies realistic charge/discharge and thermal models per tick
  • Evaluates failover conditions against live subsystem values
  • Generates ISL quality metrics from actual propagated positions
The SimulatedSatellite executor connects to the Sim service’s session API to persist and retrieve constellation state.