Wissensbasis/Benachrichtigungen und Realtime/Realtime in der Deal Room (und an den zwei anderen Stellen)
02Benachrichtigungen und Realtime3 Min. Lesezeit

Realtime in der Deal Room (und an den zwei anderen Stellen)

Welche drei Screens auf Live-Änderungen in der Datenbank hören, warum das Auction-Lot zusätzlich im Takt tickt und warum die Inventory-Liste nicht dabei ist.

Polling-Schleifen auf einem Lagertablet sind ein hervorragender Weg, einen Akku zu leeren und ein Hallennetz auszulasten. Die Plattform schiebt stattdessen Postgres-Change-Events über einen WebSocket — aber nur dort, wo zwei Menschen in derselben Sekunde am selben Objekt handeln können, und das sind, wie sich herausstellt, drei Screens.

Die drei

Die Deal Room hört auf die Nachrichten, die Angebote und die Statuszeile des Deals selbst, gefiltert auf genau diesen Deal: Ein Gegenangebot, das in Rotterdam getippt wird, erscheint in Hamburg, ohne dass eine der beiden Seiten neu lädt. Die Notifications-Glocke hört auf Ihre Benachrichtigungen, sodass sich der Ungelesen-Zähler von selbst bewegt. Das Auction-Lot hört auf das Lot und auf Gebote: Das aktuelle Höchstgebot und der Schlusszeitpunkt erreichen alle, die zusehen, und dass Ihr eigenes Gebot von führend auf überboten kippt, ist genau das, was den Überboten-Zustand auf dem Bildschirm antreibt. Das ist die vollständige Liste.

Row Level Security reist mit dem Event

Die Regeln, die entscheiden, was Sie lesen dürfen, entscheiden auch, was Sie empfangen dürfen. Lot-Updates sind für jeden Bieter lesbar, ein neues Höchstgebot verbreitet sich also über Tenants hinweg. Gebotszeilen gehören nur Ihrem eigenen Tenant, Sie sehen also zu, wie Ihr Gebot geschlagen wird, ohne je das Gebot zu sehen, das es geschlagen hat. Der Browser abonniert, ein Event kommt an, die Komponente liest die betroffenen Daten neu und rendert erneut. Keine Polling-Schleife, und kein versehentliches Fenster in das Buch eines anderen.

Der zusätzliche Herzschlag des Lots

Die Auction-Lot-Seite lädt sich zusätzlich alle 30 Sekunden selbst neu, dauerhaft, neben dem Abonnement. Es ist kein Fallback, der anspringt, wenn der Socket ausfällt — das erkennt niemand —, es ist ein Sicherheitsnetz für einen Socket, der still abgerissen ist und nie etwas dazu gesagt hat. Dreißig Sekunden sind eine bewusste Zahl: kurz genug, dass ein verpasstes Event Sie eine halbe Minute kostet, lang genug, dass ein Dutzend offener Lot-Tabs nicht alle paar Sekunden ihre Galerie-Thumbnails neu rendern und neu signieren.

Was nicht live ist, und warum das in Ordnung ist

Inventory-Listen, Receiving Sessions und die Reporting-Screens abonnieren nichts. Sie lesen, wenn Sie sie öffnen, und noch einmal nach Ihrer eigenen Aktion. Eine Palette verändert sich nicht, während Sie sie ansehen, und ein Kollege, der drei Gänge weiter einen Laptop verkauft, ändert nichts an dem, was Sie mit dem in Ihrer Hand tun sollten. Live-Updates gehören auf die Screens, auf denen jemand anderes dasselbe Stück bewegt; überall sonst sind sie eine Stromrechnung mit Abo.