carlos / platform Public

replica-placements-162

Human

The platform half of discussion #162 (edge checkout).

Ask 1 lands on the edge, not on titogo's router: on CARLOS the edge owns host routing, and a request for an account host that reaches a non-home box is backhauled (internal/edge/edge.go). So "served locally instead of hairpinned" means the replica box holds a local route row for the account's public host pointing at the replica instance's socket, and backhaul — which only fires on an upstream miss — never runs there. The replica box publishes those entries in its edges file under role "replica", which homemap.go already ignores, so every other box keeps backhauling to the real home and the home map stays single-valued.

Ask 2 is three additive record fields: Role ("" | "replica"), Replicas (the home record's opt-in placement set, the residence gate) and Home (the replica's link to what it mirrors), plus the instance API and CLI that expose them.

Ask 3 needs no new channel. An instance dials a sibling at that box's EIP with the real hostname as SNI, which is what backhaul already does and which bypasses the local edge, so a replica can reach home without landing on itself. The platform supplies the addresses and a per-account key shared by home and its replicas; titogo signs and shapes the lease and drain calls itself.

Steering needs no change: desiredState already emits a latency record per armed edge for every steered host, so buyers already land on the nearest edge.

Design, spec, plan and implementation all run on this branch, each with a Fable review round.

Commits 23
Discussions 0 0 open
Tasks 15/15 done

Discussions

  • No discussions on this branch yet.

Tasks 15/15 done

  • Design sketch reviewed by Fable Done
  • Spec written, Fable-reviewed, revised Done
  • Implementation plan written and reviewed Done
  • Record fields: Role, Replicas, Home (+ validation) Done
  • Reconcile mints the replica's public-host rows Done

Activity