Teaser epoch-typed control Starlink-class paths

The language that treats Starlink like Starlink.

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

Your dish is not a fiber drop.

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.

Handover

A new satellite, a new delay, a new bottleneck. Last epoch's samples are lies.

Mobility loss

A burst with no queue is not a full buffer. Recovery should hold, not cut.

Lucky seeds

One orbit can flatter a controller. A win that cannot survive five is not a win.

The language

Samples die with their epoch.

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.

  • First-class path epochs and automatic sample invalidation
  • Mobility vs congestive vs unknown, with different recovery
  • Interval bandwidth and handover calendars, not point estimates
  • Compose lists so a new chase cannot silently double-cut the window
  • Multi-seed dual-gate contracts (goodput, p95, terrestrial)
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
}

Honesty

A teaser, not a firmware flash.

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.

Questions

Will this make my Starlink faster today?
Not as a kit update. VELA is how the next controller gets written. OrbitStack is the live science surface.
Is the language open source?
The teaser and the design are public here. The compiler tree is in private lab until it is ready to open.
Does this need SpaceX cooperation?
No. Endpoint-only is the default. Hints are optional and fail-closed.