Real-time synchronizácia, live notifikácie a okamžité aktualizácie rozhrania – používateľ vidí zmenu bez toho, aby obnovoval stránku. Znie to ako detail, ale pri skladových stavoch, rezerváciách či cenách je rozdiel medzi „aktuálne" a „aktuálne k poslednému načítaniu" rozdielom medzi predanou a stornovanou objednávkou.

Kde to má reálny dopad

Pri posledných kusoch na sklade, keď o ten istý tovar súťaží viac zákazníkov naraz. Pri rezervačných systémoch, kde dva paralelné pokusy nesmú obsadiť rovnaký termín. Pri dashboardoch, ktoré má obsluha otvorené celý deň a nemá dôvod ich obnovovať. A pri procesoch, kde zmenu stavu treba doručiť ďalšiemu oddeleniu okamžite.

Ako to riešime

  • Server posiela zmeny ako udalosti, klient si nesťahuje celý stav dokola.
  • Automatické obnovenie spojenia po výpadku vrátane dobehnutia zmeškaných zmien.
  • Riešenie konfliktov, keď dvaja používatelia menia tú istú vec naraz.
  • Cielené doručovanie – používateľ dostane len to, čo sa ho týka.
  • Fallback na klasické načítanie tam, kde spojenie nie je dostupné.

Na čo si dať pozor

Real-time nie je zadarmo. Každé otvorené spojenie niečo stojí a zle navrhnuté rozposielanie zmien vie zaťažiť server viac než pôvodné načítavanie. Preto v praxi kombinujeme prístupy – kritické dáta idú okamžite, zvyšok sa aktualizuje v rozumnom intervale.

Výsledok posudzujeme podľa toho, či ubudli konflikty a reklamácie, nie podľa toho, koľko udalostí systém prenesie.

Časté otázky

Zaťaží real-time viac náš server?

Závisí od návrhu. Zle nastavené rozposielanie zmien vie zaťažiť viac než pôvodné načítavanie, dobre navrhnuté naopak menej, pretože odpadnú opakované dopyty naprázdno. Preto pri návrhu počítame s očakávaným počtom súčasne pripojených používateľov.

Funguje to aj na mobilných sieťach?

Áno, ale s výpadkami treba počítať. Spojenie sa po strate signálu automaticky obnoví a klient si dotiahne zmeny, ktoré medzitým unikli. Tam, kde spojenie nie je dostupné vôbec, aplikácia prejde na klasické načítanie.