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.
GS-Reactor
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
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
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.
Ne pas confondre
Une vue observable du graphe au runtime : état présent, additions, suppressions et ordre. C’est le contrat utilisé pour maintenir une projection vivante.
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
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
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
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é
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
Geste utilisateur → transaction Generic System → Snapshot vivant → mise à jour ciblée du DOM. L’interface ne possède pas une seconde vérité à synchroniser.