Modely a platformy AI
Lovable vyvíjí službu v reálném čase, která sjednocuje správu oprávnění k datům

Lovable uvedlo 9. listopadu 2026, že po úplném nasazení služby Lovable Realtime přešlo jeho frontendové prostředí od Firestore. Tato vlastní služba centralizuje autorizaci a během měřicího období trvajícího 30 dní dosáhla špičky 2,06 milionu souběžných předplatných.
Rozhodování o přístupu a zobrazovaných polích se po migraci přesunulo do backendu Lovable napsaného v Go. Služba platformě společnosti pro tvorbu aplikací pomocí AI umožňuje kombinovat data z Firestore a Spanneru a aktualizovat zobrazení uživatele, kdykoli se změní podkladová data nebo jeho oprávnění.
Sjednocení oprávnění a dat v reálném čase
Některé části Lovable dříve používaly Firestore přímo v prohlížeči onSnapshot k poslechu aktualizací. Prohlížeč přijímal celé dokumenty a pravidla Firestore musela kopírovat model oprávnění rozhraní Go API. Tento návrh navíc spojoval zpřístupňování dat s běžnými změnami dokumentů: člověk, který přidal pole, mohl rozhodnout o tom, co se dostane do prohlížečů uživatelů, aniž by si nutně uvědomil důsledky.
Pravidla Firestore mohou dotazovat data ve Firebase, nikoli však ve Spanneru. To komplikovalo aktualizace autorizace pro velké podnikové skupiny synchronizované prostřednictvím SCIM, který synchronizuje uživatele a skupiny do pracovního prostoru Lovable. Dočasné řešení pro firemní a podnikové zákazníky zprostředkovávalo požadavky přes Go API a znovu využívalo jeho kontroly oprávnění. Zároveň však pro závislosti každého klienta otevíralo samostatná naslouchání Firestore na straně serveru, čímž duplikovalo datové proudy a spotřebovávalo kapacitu fondu připojení sdíleného s běžnými databázovými požadavky.
Lovable požadovalo, aby náhradní řešení fungovalo s oběma stávajícími databázemi, průběžně znovu vyhodnocovalo přístup a uprostřed relace uzavřelo datový proud uživatele, jehož oprávnění byla odebrána. Chtělo také zabránit tomu, aby se neoprávněně přístupná pole dostala ze serveru ven. Společnost dospěla k závěru, že možnosti v oblasti přenosu, synchronizace a integrace s databází, které posuzovala, tuto kombinaci nenabízejí bez rozsáhlých integračních prací, změny databáze nebo replikace do Postgresu.
Výsledná služba napsaná v Go běží na GKE a pro každou kartu prohlížeče otevírá jedno připojení WebSocket; předplatná jsou multiplexována přes toto připojení. Datové kanály zachycující změny přenášejí změny z Firestore a Spanneru přes most do NATS, tedy sběrnice zpráv služby. U odpovídajících předplatných se znovu vypočítávají zobrazení, porovnávají se hashe xxh3-128 a změnové záznamy se odesílají pouze tehdy, když se výstup změní. Jedno předplatné může čerpat data z obou databází a současně uplatňovat rámec oprávnění API.
Autorizace se považuje za další reaktivní zdroj dat, takže změny oprávnění mohou vyvolat nové výsledky nezávisle na běžných úpravách dokumentů. Lovable uvedlo, že když se výpočty opakovaly pouze při změně polí, která ovlivňují rozhodování o přístupu, a nikoli při každé relevantní aktualizaci dokumentu, počet opakovaných výpočtů oprávnění se snížil přibližně o 84 %. Služba má přibližně 40 typů předplatného, za které odpovídá sedm týmů; využívá typovaná rozhraní, sdílená předplatná na straně serveru a upozornění směrovaná příslušným týmům.
Nasazení ověřil stínový provoz
Lovable nejprve spustilo službu ve stínovém režimu: frontend procházel celou novou cestou, ale přijatá data zahazoval a nadále vykresloval obsah z Firestore. Testování na skutečném provozu a reálných podobách dat odhalilo laviny opětovného připojování po nasazeních, chybně klasifikované chyby a limit velikosti datové zprávy, který byl pro skutečná data příliš nízký. Poté příznak funkce během několika dní postupně zvýšil dostupnost pro uživatele z 1 % na 10 %, 50 % a 100 %. Lovable uvedlo, že nasazení nezpůsobilo žádný incident viditelný pro uživatele ani zhoršení sledovaných metrik.
Protože jsou připojení WebSocket trvalá a mohou trvat celé hodiny, samotné přidání podů nepřesune stávající zátěž. Lovable vyvažuje zátěž podle počtu připojení, škáluje podle počtu připojení spolu s využitím procesoru a paměti a omezuje počet připojení na jeden pod, aby zmírnilo vlny opětovného připojování. Po opětovném připojení klienti odesílají otisk své mezipaměti. Server tak po nové kontrole autorizace může potvrdit, že se data nezměnila, a nemusí je odesílat znovu.
Autor příspěvku uvedl, že vývoj jádra zabral 40 pracovních dní aktivní práce a že agenti pro programování provedli většinu implementace poté, co byly vyřešeny otázky architektury a okrajové případy. Integrační testovací prostředí spojovalo emulátory Firestore, Auth a Spanneru s vloženým serverem NATS a skutečnými ID tokeny vydanými emulátorem. Agenti tak mohli testovat změny napříč celým systémem.
Výsledky v produkci a možná podpora aplikací
Za období od 5. září do 5. října 2026 Lovable vykázalo 2,61 miliardy datových a změnových rámců, bez obnovených řídicích rámců, a odhadlo, že úplné snímky každého vypočteného výsledku by vytvořily 40 TB aplikačních dat. Deduplikace, změnové záznamy a opětovné využití dat při opětovném připojení snížily skutečný objem odeslaných dat na 1,11 TB, tedy podle odhadu o 97 % oproti výchozímu stavu. Údaje o objemu dat nezahrnují režii protokolu a přenosu.
Lovable naměřilo dobu mezi zápisem do zdrojové databáze a připravením odchozího rámce k odeslání: 66 milisekund na úrovni p50 a 249 milisekund na úrovni p99. Tato měření nezahrnují zápisy do soketu, dobu přenosu po síti ani zpracování na straně klienta, a proto nepředstavují celkovou dobu aktualizace vnímanou uživatelem.
Lovable uvedlo, že aktivně přidává základní prvky pro doménové události, které v případech, kdy odběratelé potřebují vědět, že se něco stalo, místo aby dostali snímek dat, umožní je o tom informovat. Služba by se později mohla stát funkcí v aplikacích vytvořených pomocí Lovable. Takové rozšíření by do aplikací vytvořených zákazníky přineslo oprávnění řízená backendem a živá zobrazení. Současné nasazení už týmům Lovable poskytuje společný základ pro intenzivnější spolupráci, zatímco se jejich datová infrastruktura vyvíjí.












