GS-Reactor

Une caméra vivante braquée sur le graphe.

GS-Reactor ne sonde pas périodiquement une API et ne reconstruit pas la page. Il maintient une projection du modèle Generic System : ce qui change dans le graphe produit seulement le changement nécessaire dans l’interface.

Le pipeline

Le graphe ne devient pas une copie de front-end.

Graphe
Generic System
Snapshot observable
caméra vivante
Contextes Reactor
puis DOM par WebSocket

Les Tag décrivent la structure. Les Context l’instancient avec les Generics concernés. Les HtmlDomNode matérialisent ce couple côté navigateur. La connexion WebSocket transporte les deltas du DOM, y compris lors du montage initial.

Snapshot réactif

Une vue, plus son mouvement.

Un Snapshot vivant n’est pas une liste figée : il donne l’image actuelle de sa sélection et signale les additions, suppressions et leur ordre. C’est la caméra qui reste tournée vers une partie du graphe.

Ce que Reactor reçoit

Maintenantles éléments visiblesAjoutsce qui entre dans la vueSuppressionsce qui en sort, à l’index juste

Ne pas confondre

Deux sens du mot « snapshot ».

Snapshot réactif

Une vue observable du graphe au runtime : état présent, additions, suppressions et ordre. C’est le contrat utilisé pour maintenir une projection vivante.

Snapshot de persistance

Une image écrite sur disque pour la durabilité et la reprise du moteur. C’est une notion de stockage ; elle ne décrit pas le flux réactif envoyé à l’interface.

Un delta de bout en bout

Pas de polling. Pas de page entièrement rerendue.

Delta du graphe
Delta de projection
Context
Delta DOM
WebSocket

Une addition crée le sous-contexte et le nœud concernés ; une suppression retire seulement ceux qui correspondent. L’index du Snapshot conserve l’ordre des sous-contextes et du DOM.

Vues filtrées

Filtrer sans casser la caméra.

Snapshot.derive construit une vue filtrée qui reste reliée à ses déclencheurs. Un changement de périmètre produit ainsi des deltas dans la même projection, plutôt qu’une liste détruite puis reconstruite.

Mode strict

Refuser les faux snapshots.

Une liste morte peut sembler correcte au premier affichage puis ignorer tous les changements ultérieurs. Le mode strict Reactor refuse une itération qui n’est ni réellement vivante ni explicitement immuable : c’est un défaut de rendu, pas un avertissement à masquer.

Démontré

La projection est testée, pas supposée.

GS-Reactor est couvert par ~550 tests. Six applications Java du workspace servent leurs écrans par cette projection : facturation, postal, car color, extended car color, todomvc et l’administration GSDS.

La preuve est le DOM rendu : un démarrage JVM ne suffit pas — c’est l’arborescence produite dans le navigateur qui compte.

Le geste inverse

Un clic retourne au même graphe.

Geste utilisateur → transaction Generic System → Snapshot vivant → mise à jour ciblée du DOM. L’interface ne possède pas une seconde vérité à synchroniser.