Zeta-Lite: A Concurrent, Branchable In-Browser SQL Database for Agentic Memory
Zeta-lite is een compacte, gelijktijdige en vertakkingsmogelijke in-browser SQL-databaseengine gebouwd op WebAssembly die overlappende snapshot-geïsoleerde transacties en copy-on-write databasevertakking mogelijk maakt, met een feature-complete PostgreSQL-interface geoptimaliseerd voor agentic geheugen en local-first applicaties.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Decennialang werkte het internet volgens een eenvoudige regel: je gegevens leefden op een server ergens anders, en jouw computer was slechts een venster om ernaar te kijken. Als je die gegevens wilde doorzoeken, sorteren of analyseren, moest je een verzoek over het netwerk sturen en wachten op het antwoord. Dit model veranderde toen applicaties meer privacy en de mogelijkheid begonnen te eisen om zonder internetverbinding te kunnen werken. Het idee om gegevens direct op het apparaat van de gebruiker te houden, in plaats van in een verre cloud, werd een prioriteit. Deze verschuiving leidde tot een nieuwe uitdaging voor software engineers: hoe bouw je een krachtig, gestructureerd datasysteem dat volledig binnen een webbrowser draait? Browsers zijn ontworpen om veilig en geïsoleerd te zijn, wat ze moeilijke plekken maakt om complexe software te draaien die meestal diepe toegang tot het besturingssysteem van een computer vereist.
De traditionele oplossing was om bestaande databasesystemen te verkleinen of om zeer eenvoudige tools te gebruiken die geen geavanceerde functies hebben. Een populaire aanpak houdt in dat men een enorme database-engine neemt, deze inkrimpt en vertaalt naar een formaat dat browsers begrijpt, maar dit dwingt de software er vaak toe om traag te draaien of in een enkele lijn van werk te functioneren, zonder meerdere taken tegelijkertijd te kunnen afhandelen. Een andere aanpak gebruikt piepkleine, lichtgewicht engines die snel zijn, maar niet in staat zijn tot complexe zoekopdrachten of het beheren van ingewikkelde relaties tussen verschillende stukjes informatie. De vraag bleef of het mogelijk was om een database te hebben die klein genoeg was om in een browser te passen, snel genoeg om direct aan te voelen, en slim genoeg om complexe, overlappende taken tegelijkertijd te verwerken.
Een onderzoeker heeft nu een systeem gebouwd genaamd Zeta-lite dat deze vraag met een definitief 'ja' beantwoordt. Ze hebben een database-engine gecreëerd die volledig binnen een webbrowser leeft en slechts 2,87 megabyte weegt wanneer deze gecomprimeerd is. Ondanks deze kleine omvang kan het complexe zoekopdrachten uitvoeren, meerdere gebruikers tegelijkertig beheren die eraan werken, en zelfs kopieën van zichzelf maken om nieuwe ideeën te testen zonder de originele gegevens in gevaar te brengen. Dit systeem is specifiek ontworpen voor een nieuw soort software: kunstmatige intelligentie-agenten die in de browser draaien en een plek nodig hebben om hun gedachten, herinneringen en ontdekkingen op te slaan. De onderzoeker ontdekte dat door de manier waarop de database zijn geschiedenis onthoudt te veranderen, zij een niveau van prestaties en flexibiliteit konden bereiken dat voorheen als onmogelijk werd beschouwd voor zo'n klein programma.
De kern van hun ontdekking ligt in de manier waarop de database met tijd omgaat. De meeste traditionele databases werken als een eenbaansweg waar auto's moeten wachten tot de auto voor hen klaar is voordat ze verder kunnen rijden. Als twee mensen tegelijkertijd dezelfde informatie willen bijwerken, moet één van hen wachten. Zeta-lite werkt anders. In plaats van een enkele rij, behandelt het elk stukje data alsof het een geschiedenis van versies heeft. Wanneer een taak begint, maakt het een snapshot van de data op dat exacte moment. Het kan vervolgens werken aan zijn eigen versie van de waarheid terwijl andere taken tegelijkertijd plaatsvinden. Als twee taken proberen hetzelfde te wijzigen, detecteert het systeem het conflict en stopt het een van de twee, maar het dwingt hen niet om in de rij te wachten. Dit maakt het mogelijk om meerdere taken gelijktijdig uit te voeren op een enkele thread van executie, een prestatie die normaal gesproken complexe, zware hardware of speciale browserinstellingen vereist die de meeste websites niet kunnen gebruiken.
Dit vermogen om overlappende taken te verwerken wordt gekoppeld aan een unieke functie genaamd branching (vertakking). In de wereld van softwareontwikkeling betekent het maken van een branch het maken van een kopie van een project om aan een nieuw idee te werken zonder het origineel te breken. Zeta-lite brengt dit concept rechtstreeks naar de data zelf. Een applicatie kan de volledige database splitsen in een nieuwe branch, wijzigingen aanbrengen, deze testen, en vervolgens besluiten om die wijzigingen terug te voegen aan de hoofddatabase of ze geheel te verwijderen. Dit gebeurt bijna onmiddellijk en zonder extra opslagruimte te gebruiken, omdat het systeem alleen de verschillen tussen de branches opslaat. Voor een kunstmatige intelligentie-agent is dit een krachtig hulpmiddel. Het stelt de agent in staat om een hypothese te verkennen, een nieuw plan uit te proberen of een gesprek te simuleren, en vervolgens het experiment simpelweg te wissen als het mislukt, waardoor de originele herinnering perfect intact blijft.
De onderzoeker heeft dit systeem rigoureus getest om te verzekeren dat het niet slechts een theoretisch concept was, maar een werkende realiteit. Ze draaiden de database in twee van de meest populaire webbrowsers, Chrome en Firefox, en vergeleken de snelheid ervan met een native versie die op een standaardcomputer draait. Ze ontdekten dat de browserversie bijna net zo snel was als de native versie en honderdduizenden data-opvragingen per seconde kon afhandelen. In tests waarbij meerdere taken tegelijkertijd probeerden dezelfde data bij te werken, beheerde het systeem de conflicten succesvol zonder vast te lopen of te vertragen. Ze verifieerden ook dat het systeem langdurig kon draaien zonder gegevens te verliezen of geheugen te lekken, zelfs terwijl het groeide om miljoenen operaties te verwerken. De database behield zijn status door een volledige snapshot van zichzelf op te slaan in de privéopslag van de browser, een proces dat minder dan een seconde duurde, zelfs voor grote hoeveelheden data.
Wat deze prestatie bijzonder belangrijk maakt, is dat het niet leunt op de complexe, zware infrastructuur die dergelijke systemen gewoonlijk aandrijft. De meeste browsergebaseerde databases die vergelijkbare functies bieden, vereisen speciale security headers die websites dwingen om zichzelf te isoleren van de rest van het internet, wat hun gebruik beperkt. Zeta-lite vermijdt dit volledig. Het draait op de main thread van de browser, dezelfde plek waar de rest van de website leeft, zonder extra beveiligingsmaatregelen of background workers nodig te hebben. Dit betekent dat het in elke webapplicatie kan worden gevoegd zonder dat de site anders moet worden gebouwd of gehost. Het systeem is gebouwd vanuit dezelfde codebase als een veel grotere serverdatabase, wat bewijst dat de complexe logica die nodig is voor geavanceerd databeheer kan worden gecomprimeerd tot een piepklein pakket zonder aan kracht in te boeten.
De implicaties van dit werk reiken verder dan alleen snelheid of omvang. Het opent de deur naar een nieuwe generatie applicaties die lokaal over hun eigen gegevens kunnen onthouden en redeneren. Stel je een AI-assistent voor die in je browser leeft, in staat om jouw persoonlijke geschiedenis op te slaan, te leren van jouw interacties en jouw informatie te organiseren zonder die gegevens ooit naar een externe server te sturen. Met het vermogen om zijn geheugen te vertakken, kan deze assistent verschillende manieren uitproberen om je aantekeningen te organiseren of je dag te plannen, waarbij alleen de resultaten die werken worden behouden. De onderzoeker is al begonnen met het bouwen van een begeleidend systeem genaamd Zengram-lite, dat deze exacte mogelijkheden gebruikt om een geheugensysteem voor dergelijke agenten te creëren.
Het artikel concludeert dat de oude aanname — dat je moet kiezen tussen een kleine, eenvoudige database en een grote, krachtige database — niet langer waar is. Door opnieuw na te denken over hoe data wordt versioneerd en hoe taken worden beheerd, is het mogelijk om beide te hebben. De Zeta-lite engine laat zien dat een volledig functionele, concurrente en vertakkende database in een webbrowser kan passen en op een niveau kan presteren dat dat van native software evenaart. Dit is geen simulatie of een belofte van toekomstige technologie; het is een werkend systeem dat vandaag beschikbaar is, klaar om te worden gebruikt door ontwikkelaars die applicaties willen bouwen die privé, snel en in staat tot complexe redenering zijn, direct op het apparaat van de gebruiker.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.