2DX är ett ramverk för webbgränssnitt som består av NoSQL-webbläsare i minnet och RDBMS som är värd för lagrad procedur-byggd JavaScript-tolk. Både NoSQL- och RDBMS-databaskomponenter i 2DX följer samma Entity-Attribute-Value-databasschema utformat för att ta emot serialiserade data i normal form. Den utvecklades genom reduktion av relationsdatamodeller till serialiserade dataformat som finns i industristandarder som XML eller JSON.
NoSQL-klient för webbläsare är ett enkelt JavaScript-objekt som är en databas som levereras med serialiserat datafrågegränssnitt indexerat för minskning av Big-O-notation i extraktoperationer. Olika dokumenttyper stöds av relevanta API-drivrutiner. För närvarande stödd dokumenttyp är "UI" för webbplatsens DOM-träd med stöd för "DB" för relationsdata och "OL" för pivottabeller under utveckling. 2DX-klientgränssnitt mot JavaScript-ramverk från tredje part som Angular eller jQuery genom specifika API-drivrutiner som utökar dess klientgränssnittsfunktionalitet till allmänt använda webbutvecklingsverktyg.
Webbsidor som finns i DOM-trädet i "UI"-dokumentet visas på skärmar genom inbyggd HTML-rendering och cachingmotor. För sin UI-drift skapar klient NoSQL-databasen DOM-behållare i minnet vid tidpunkten för initiering "new JS2DX()". Denna funktion möjliggör direkt DB-UI-minnesåtkomst. Benchmarks visar att 2DX kan rendera flera webbsidor med 10-20 millisekunders intervall och kan ladda DOM-träd med över 2 miljoner HTML-element utan att krascha webbläsarfönstret.
2DX-servern är en RDBMS-databas som är värd för lagrade procedurer som konverterar serialiserade data till normal form och vice versen. De lagrade procedurerna representerar en JavaScript-tolk vars programkällkod lagras i normal form. Förutom att skicka in klientdata kan 2DX-servern köra kompletta, affärslogikaktiverade objektorienterade program skrivna i starkt skrivet JavaScript. Den ansluter till klientinstanser via CGI-drivrutinen.
Eftersom fler företag väljer NoSQL för snabb frågeprestanda, lämnas dess interoperabilitet med relationsdata ofta med applikationens mellanlager. 2DX eliminerar behovet av mellanlager med programmeringsmiljö värd i Persistent Stored Modules inbyggt i RDBMS. Data som lämnas av klienter bearbetas och av och läggs till en relationsdatabas. Transaktionsloggar med uppdaterade tabellrader publiceras asynkront till en NoSQL-server eller filsystem. Klientdatabasinstanser använder sistnämnda för att hämta loggar över relationsdatauppdateringar för replikering och omedelbar tillgänglighet på UI-skärmar. När väntande transaktioner spelas upp på klientinstanser blir de synkroniserade med serverdatabasen.
Konfiguration av 2DX-klient/server-databaskluster säkerställer låg latens i stora datamiljöer där överföring av klientförfrågningar till en relationsdatabas är nödvändig. Dessutom kommer ett sådant kluster att säkerställa att användarinmatnings-/utmatningsoperationer registreras i RDBMS-transaktionsloggar. Dess UI-renderingsprestanda kan öppna 2DX för användning i webbspeltjänster. Direkt databasloggsändning mellan klient- och serverdatabaskomponenter i klustret som kringgår serialisering och proprietär DBMS-server som ersättning för generiska RDBMS planeras i framtida versioner.