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.
Ste pripravení posunúť váš biznis na ďalšiu úroveň?
Poďme sa porozprávať