2DX is een Web UI-framework dat bestaat uit in-memory Browser NoSQL en RDBMS die een Stored Procedure-gebouwde JavaScript-interpreter host. Zowel NoSQL- als RDBMS-databasecomponenten van 2DX volgen hetzelfde Entity-Attribute-Value-databaseschema dat is ontworpen om geserialiseerde gegevens in normale vorm op te nemen. Het is ontwikkeld door het reduceren van relationele datamodellen tot geserialiseerde dataformaten die te vinden zijn in industriestandaarden zoals XML of JSON.
NoSQL-client voor webbrowsers is een lichtgewicht JavaScript-singleton-object dat een database is die wordt geleverd met een geserialiseerde gegevensquery-interface die is geïndexeerd om de Big-O-notatie bij extractiebewerkingen te verminderen. Verschillende documenttypes worden ondersteund via relevante API-stuurprogramma's. Momenteel ondersteund documenttype is 'UI' voor website DOM-bomen met ondersteuning van 'DB' voor relationele gegevens en 'OL' voor draaitabellen in ontwikkeling. 2DX-clientinterfaces naar JavaScript-frameworks van derden, zoals Angular of jQuery via specifieke API-stuurprogramma's die de UI-functionaliteit van de client uitbreiden naar veelgebruikte webontwikkelingstools.
Webpagina's in de DOM-structuur van het 'UI'-document worden op schermen weergegeven via ingebouwde HTML-rendering en caching-engine. Voor zijn UI-bewerkingen maakt de NoSQL-database een in-memory DOM-container aan op het moment van initialisatie "new JS2DX()". Deze functie maakt directe toegang tot het DB-UI-geheugen mogelijk. Benchmarks tonen aan dat 2DX meerdere webpagina's kan weergeven met intervallen van 10-20 milliseconden en in staat is om DOM-structuren met meer dan 2 miljoen HTML-elementen te laden zonder het browservenster te laten crashen.
2DX-server is een RDBMS-database met opgeslagen procedures die geserialiseerde gegevens converteren naar de normale vorm en omgekeerd. De Opgeslagen Procedures vertegenwoordigen een JavaScript-interpreter waarvan de programmabroncode in normale vorm is opgeslagen. Afgezien van het vastleggen van ingediende clientgegevens, is de 2DX-server in staat om complete, zakelijke logica-enabled objectgeoriënteerde programma's uit te voeren die zijn geschreven in sterk getypt JavaScript. Het maakt verbinding met clientinstanties via de CGI-driver.
Naarmate meer ondernemingen NoSQL kiezen voor snelle queryprestaties, wordt de interoperabiliteit met relationele gegevens vaak overgelaten aan de middelste laag van de applicatie. 2DX elimineert de noodzaak van een middelste laag met een programmeeromgeving die wordt gehost in Persistent Stored Modules die eigen zijn aan RDBMS. Gegevens die door klanten worden ingediend, worden verwerkt en door en vastgelegd in een relationele database. Transactielogboeken met bijgewerkte tabelrijen worden asynchroon gepubliceerd naar een NoSQL-server of bestandssysteem. Clientdatabase-instanties gebruiken laatstgenoemde om logboeken van relationele gegevensupdates op te halen voor replicatie en onmiddellijke beschikbaarheid op UI-schermen. Zodra lopende transacties worden afgespeeld op clientinstanties, worden ze synchroon met de serverdatabase.
2DX client/server-databaseclusterconfiguratie zorgt voor een lage latentie in grote gegevensomgevingen waar het vastleggen van clientverzoeken aan een relationele database noodzakelijk is. Bovendien zorgt een dergelijk cluster ervoor dat invoer-/uitvoerbewerkingen van gebruikers worden vastgelegd in RDBMS-transactielogboeken. De UI-renderingprestaties kunnen 2DX openen voor gebruik in webgamingservices. Directe verzending van databaselogboeken tussen client- en serverdatabasecomponenten van het cluster die serialisatie en eigen DBMS-server omzeilt ter vervanging van generieke RDBMS, zijn gepland in toekomstige versies.