Le realtime dans la deal room (et dans les deux autres endroits)
Quels trois écrans sont abonnés aux changements live de la base, pourquoi le lot d’auction bat aussi au chronomètre, et pourquoi la liste inventory n’est pas de la partie.
Les boucles de polling sur une tablette de warehouse sont un excellent moyen de vider une batterie et de saturer un réseau d’atelier. La plateforme pousse à la place les change events Postgres par WebSocket — mais uniquement là où deux personnes peuvent agir sur le même objet à la même seconde, ce qui se révèle être trois écrans.
Les trois
La deal room s’abonne aux messages, aux offers et à la row de statut du deal, filtrés sur ce seul deal : une contre-offre tapée à Rotterdam apparaît à Hambourg sans que l’un ou l’autre côté recharge. La notification bell s’abonne à vos notifications, donc le compteur de non-lus bouge tout seul. Le lot d’auction s’abonne au lot et aux bids : l’enchère haute du moment et l’heure de clôture atteignent tous ceux qui regardent, et votre propre bid qui bascule de winning à outbid est ce qui alimente l’état de surenchère à l’écran. C’est la liste complète.
La row-level security voyage avec l’événement
Les règles qui décident ce que vous pouvez lire décident ce que vous pouvez recevoir. Les mises à jour de lot sont lisibles par chaque bidder, donc une nouvelle enchère haute se propage entre tenants. Les rows de bid n’appartiennent qu’à votre tenant, donc vous regardez votre bid se faire battre sans jamais voir l’enchère qui l’a battu. Le navigateur s’abonne, un événement arrive, le composant relit les données concernées et se rerend. Pas de boucle de polling, et aucune fenêtre accidentelle sur le carnet de quelqu’un d’autre.
Le battement de cœur supplémentaire du lot
La page du lot d’auction se rafraîchit aussi toutes les 30 secondes, en permanence, en plus de l’abonnement. Ce n’est pas un fallback qui s’enclenche quand le socket tombe — rien ne détecte cela — c’est un filet de sécurité pour un socket tombé en silence sans jamais le dire. Trente secondes est un chiffre délibéré : assez court pour qu’un événement manqué vous coûte une demi-minute, assez long pour qu’une douzaine d’onglets de lot ouverts ne se rerendent pas et ne resignent pas les vignettes de leur galerie toutes les quelques secondes.
Ce qui n’est pas live, et pourquoi ça va très bien
Les listes inventory, les receiving sessions et les écrans de reporting ne s’abonnent à rien. Ils lisent quand vous les ouvrez, et de nouveau après votre propre action. Une palette ne change pas pendant que vous la regardez, et un collègue qui vend un laptop trois allées plus loin ne change rien à ce que vous devez faire de celui que vous tenez. Les mises à jour live appartiennent aux écrans où quelqu’un d’autre déplace la même pièce ; partout ailleurs, ce sont des frais de batterie avec un abonnement.