Handover
A new satellite, a new delay, a new bottleneck. Last epoch's samples are lies.
Teaser epoch-typed control Starlink-class paths
Classic congestion control assumes a stable path and a stable RTT. Low Earth orbit has neither. VELA makes path epochs, mobility loss, and statistical contracts first-class, so the next controller can keep more of the bandwidth you already pay for.
The break
Starlink-class links hand over every 12 to 60 seconds. RTT jumps tens of milliseconds. Capacity flickers. Packets vanish because a beam moved, not because a buffer filled. CUBIC treats that as congestion and collapses. BBR keeps a stale min-RTT across the hop and sizes the window for a path that no longer exists.
A new satellite, a new delay, a new bottleneck. Last epoch's samples are lies.
A burst with no queue is not a full buffer. Recovery should hold, not cut.
One orbit can flatter a controller. A win that cannot survive five is not a win.
The language
VELA is not prettier Python. It is a type system and a compose kernel for LEO controllers. Reading a min-RTT after a reconfiguration is a type error. Loss is a closed taxonomy. Dual-gate claims are contracts the eval harness actually runs.
lang vela 0.1
controller Horizon {
compose Detect + SoftReprobe
+ IntervalBw + PredictiveFreeze
signals:
epoch: Epoch
rtt: Sample<ms> @ epoch
bw: Interval<bps> @ epoch
p_ho: Prob
on Reconfig(e) {
invalidate min_rtt, bw
enter Reprobe(cut: 0.58)
}
on Loss(k) match k {
Mobility => hold
Congestive => cut(0.72)
Unknown => require delay_ratio > 1.35
then cut(0.72) else hold
}
}
contract DualGate vs BBRv3approx {
assert mean(goodput) >= baseline.goodput
assert mean(p95) <= baseline.p95
}
What users should feel
VELA does not add satellites. It stops wasting the ones you already have. The design target is user-visible: higher sustained speed, calmer interactive delay, fewer stalls when the sky rearranges.
Honesty
VELA is a lab language. It does not flash your dish. It does not promise plus-N megabits on a particular terminal tonight. The running, measured congestion controller on this network is OrbitStack / LeoAware. VELA exists so that controller can be composed, checked, and extended for space internet without unnamed flags or lying numbers.
Optional path hints (ASCENT-D) stay fail-closed. If the hint is missing or corrupt, the endpoint controller is still defined. That is the only story that matches Starlink today.