VIP unique · master enrôle · master décide reroute selon /24 réseau · sans intervention DSI
VIP keepalived (entry unique cluster)
Pool master (élu par admin)
Pool peer bonded (latence-optimal)
Ordre migrate (Ed25519 signed)
Drain + reconnect
Heuristique /24 (MVP)
Le master extrait le sous-réseau /24 du worker (depuis ws.client.host) et le compare contre federation_self.url et chaque peer bonded (trust_level ≥ 2). Match = candidat reroute.
Migration permanente
Le worker patche worker.json côté disque (atomic write no-BOM) avant de close son WS. Au prochain reconnect (et reboot), il pointe directement sur le peer cible. Pas de retour automatique vers l'ancien master.
Garde-fous anti-flap
Idempotence via PK migration_order_id (table worker_migration_orders). 1 ordre par worker (ON CONFLICT DO NOTHING). L'ordre suivant n'est émis que si le worker se reconnecte ailleurs et que le calcul redonne un meilleur peer.
DSI multi-sites : 1 employé Lyon, 1 cluster Paris+Lyon. L'employé installe le worker en pointant la VIP centrale. Le pool virtuel détecte qu'il est physiquement à Lyon, le redirige automatiquement vers le pool Lyon. Latence LAN, aucune intervention.