Máloco působí tak současně jako data, která se změní v tu vteřinu, kdy je někdo jiný uloží. A máloco působí tak křehce jako agresivní dotazování serveru, zastaralé cache a rozhraní, které si žádá obnovení, aby ukázalo, co se stalo před pěti vteřinami. Za ty roky, co v platformě máme vrstvu pro doručování v reálném čase, se očekávání jednoznačně posunula: uživatelům dnes vadí, když se seznam po změně kolegy neaktualizuje, když oznámení dorazí pozdě, když kanbanová tabule ukazuje starý stav. Moderní firemní platforma buď nabízí reálný čas jako součást základů, nebo za jeho absenci platí každý den — zmatenými uživateli a zátěží serveru z neustálého dotazování. My jsme ho do základů zabudovali a každá další funkce — seznamy, kanbany, oznámení, komentáře, zobrazení přítomnosti — z té infrastruktury pod povrchem těží.
Jádrem je doručování metodou push. Server drží živé spojení s každým připojeným klientem a posílá mu důležité události ve chvíli, kdy nastanou: záznam se změnil, vzniklo oznámení, přibyl komentář, změnil se stav. Klient je přijme okamžitě a aktualizuje viditelné rozhraní bez zásahu uživatele. Aktuálnost dat neurčuje žádný interval dotazování; data jsou tak čerstvá, jak trvá cesta po síti tam a zpět. Tam, kde na aktuálnosti opravdu záleží — při živé spolupráci, u provozních dashboardů, ve schránce oznámení — dělá právě tahle bezprostřednost rozdíl mezi moderním a těžkopádným dojmem.
Cílené odběry udržují push kanál efektivní i ve velkém. Kdo si prohlíží konkrétní záznam, odebírá události týkající se toho záznamu; kdo sleduje kanbanovou tabuli, odebírá události odpovídající filtru té tabule; kdo má otevřenou schránku oznámení, odebírá oznámení pro svůj účet. Klient dostane jen ty události, které se týkají toho, co má právě před sebou, takže push kanál nikomu nezahlcuje prohlížeč zbytečným provozem a server neplýtvá přenosovým pásmem na data, která nikdo nevyužije. Stejná push infrastruktura zvládne obsloužit tisíce uživatelů naráz právě proto, že odběr každého z nich je úzký.
Automatické znovupřipojení počítá s tím, jaké reálné sítě bývají. Spojení se přeruší — zakolísá Wi-Fi, zavře a znovu otevře se tunel, notebook usne a probudí se, záložka prohlížeče se na chvíli přepne do pozadí. Klient výpadek pozná, zkusí se znovu připojit v rozumných odstupech a — což je klíčové — po obnovení spojení dožene události, které se staly během výpadku. Uživatel nemusí nic obnovovat; rozhraní se samo poskládá zpět a data, na která se dívá, jsou během okamžiku zase správná.
Regulace toku a dávkování brání tomu, aby nárazy aktivity zahltily klienty. Hromadná úprava, která za pět vteřin změní sto záznamů, by při naivním řešení poslala sto samostatných událostí každému připojenému klientovi, který se na dotčený pohled dívá — každá by spustila překreslení rozhraní, každá by stála výkon procesoru a dohromady by se z nich stala smršť překreslování, která prohlížeč položí. Doručovací vrstva nárazy sloučí do dávkovaných událostí a doručí těch sto změn jako hrstku sdružených aktualizací, z nichž každá překreslí rozhraní jen jednou. Uživatel vidí plynulou aktualizaci i při neobvyklé zátěži a prohlížeč zůstává svižný.
Soulad s daty v cache je důležitý proto, že klient má v paměti data z dřívějších interakcí a přicházející události se s touto cache musí srovnat čistě. Doručovací vrstva nese dost metadat — čísla verzí, informace o návaznosti — aby klient poznal, kdy příchozí událost patří až za lokální zápis, který ještě nemá potvrzený serverem, kdy jde o duplikát něčeho už zpracovaného a kdy by událost byla v rozporu s lokálním stavem, který je potřeba vyřešit. Výsledkem je klient, jehož viditelná data jsou spolehlivě konzistentní, ne klient, který na okamžik ukazuje podivné stavy jen proto, že se dva zdroje informací neshodly.
Živě doručovaná oznámení znamenají, že se schránka oznámení aktualizuje ve chvíli, kdy nové oznámení vznikne. Uživatel pracující v jedné záložce uvidí na záložce se schránkou odznak v tu vteřinu, kdy oznámení dorazí; po kliknutí se dostane rovnou na nejnovější položku bez obnovování. U oznámení, na kterých provozně záleží — přiřazení požadavku, zmínka v komentáři, žádost o schválení — je právě živé doručení tím, co brání, aby se ze systému oznámení stala jen pomalejší náhrada e-mailu.
Aktualizace pohledů přináší stejnou živost i datovým pohledům. Tabulkový pohled promítá změny řádků, jakmile nastanou: kolega změní stav a buňka se změní. Pohled kanban přesune kartu mezi sloupci, když někdo posune podkladový záznam. Kalendářní pohled aktualizuje události, jak se plánují nebo přesouvají. U pohledů, které sdílí víc lidí — provozní dashboardy, týmové nástěnky úkolů, společné rozvrhy — je vidět aktuální stav bez obnovování zásadní.
Zobrazení přítomnosti je společenská vrstva, kterou doručovací infrastruktura umožňuje. Kdo si prohlíží záznam, vidí avatary kolegů, kteří si právě prohlížejí tentýž záznam. Dva lidé, kteří upravují stejný záznam, o sobě navzájem vědí a mohou se domluvit, místo aby si omylem přepisovali práci. Pro týmy, které spolupracují v reálném čase, je právě přítomnost tím, díky čemu platforma působí jako sdílené pracoviště, ne jako sada souběžných samostatných sezení.
Zmínky dorazí okamžitě. Když komentář někoho označí, jeho oznámení se objeví hned, ne až při příštím naplánovaném dotazu. U postupů, které stojí na rychlé výměně — „hele, mrkneš na tohle, než za dvacet minut začne porada?“ — je rozdíl mezi „okamžitě“ a „až za minutu“ znát. Komentář, oznámení i odznak se aktualizují společně a zmíněný uživatel zaznamená dění tak rychle, jako by ho kolega poklepal po rameni.
Pozvolné omezení funkcí pokrývá neobvyklé případy, kdy živý kanál není k dispozici — firemní firewall blokující dlouhá spojení, nepříjemný síťový prvek po cestě, nastavení klienta, které push kanálu brání. V takových chvílích rozhraní přejde na pravidelné obnovování: pomalejší aktualizace, ale aplikace stále funguje. Uživatelé na zdravých sítích dostanou živý zážitek, uživatelé v omezeném prostředí pomalejší, ale funkční, a nikdo nedostane rozbitý. Právě tenhle záložní režim dělá platformu použitelnou v celé škále prostředí, do kterých ji zákazníci reálně nasazují.
Pro implementátory platí, že vlastní stránky v Canvasu se mohou napojit na doručovací proud a udělat vlastní plochy živé stejně přirozeně jako vestavěné pohledy. Dashboard postavený v Canvasu, který ukazuje souhrnné metriky, může odebírat typy, ze kterých čerpá, a metriky aktualizovat, jak se podkladová data mění. Vlastní zobrazení procesu nad více záznamy se může měnit, jak se dokončují jeho kroky. Infrastruktura je vlastním stránkám k dispozici, takže rozhraní postavená implementátorem působí stejně moderně jako ta nativní, aniž by k tomu bylo potřeba stavět vlastní řešení reálného času.
Pro uživatele, kteří chtějí, aby jejich nástroje byly stejně rychlé a plynulé jako aplikace pro spolupráci, které používají v běžném digitálním životě, pro týmy, jejichž práce závisí na tom, že znají aktuální stav, aniž by se museli ptát, i pro implementátory, kteří chtějí, aby jejich vlastní plochy měly stejnou živost jako zbytek platformy — pro ně pro všechny je doručování v reálném čase tou nenápadnou infrastrukturou, díky které to funguje. Ze souvisejících témat: článek o pohledech popisuje, jak s živými aktualizacemi pracují různé pohledy, článek o oznámeních se věnuje doručování proudu oznámení, článek o zmínkách a komentářích popisuje spolupráci, která na živém doručování stojí, a článek o tvůrci stránek Canvas ukazuje, jak se vlastní stránky napojují na stejný proud. Změny dorazí ve chvíli, kdy nastanou — to je příslib moderního softwaru a doručovací vrstva je způsob, jakým ho platforma plní.