2DX é uma estrutura de interface do usuário da Web que consiste em um navegador de memória NoSQL e RDBMS que hospeda um interpretador JavaScript criado por procedimento armazenado. Os componentes de banco de dados NoSQL e RDBMS do 2DX seguem o mesmo esquema de banco de dados Entity-Attribute-Value projetado para acomodar dados serializados em formato normal. Ele foi desenvolvido por meio do reducionismo de modelos de dados relacionais para formatos de dados serializados encontrados em padrões da indústria como XML ou JSON.
O cliente NoSQL para navegadores da Web é um objeto singleton JavaScript leve que é um banco de dados fornecido com interface de consulta de dados serializada indexada para redução da notação Big-O em operações de extração. Vários tipos de documentos são suportados por meio de drivers de API relevantes. O tipo de documento atualmente suportado é 'UI' para árvores DOM de sites com suporte de 'DB' para dados relacionais e 'OL' para tabelas dinâmicas em desenvolvimento. Interfaces de cliente 2DX para estruturas JavaScript de terceiros, como Angular ou jQuery, por meio de drivers de API específicos, expandindo sua funcionalidade de interface do cliente para ferramentas de desenvolvimento da Web amplamente usadas.
As páginas da Web contidas na árvore DOM do documento 'UI' são exibidas nas telas por meio de renderização HTML integrada e mecanismo de cache. Para seu cliente de operações de interface do usuário, o banco de dados NoSQL cria um contêiner DOM na memória no momento da inicialização “new JS2DX()”. Esse recurso permite o acesso direto à memória do DB-UI. Os benchmarks mostram que o 2DX pode renderizar várias páginas da Web em intervalos de 10 a 20 milissegundos e é capaz de carregar árvores DOM com mais de 2 milhões de elementos HTML sem travar a janela do navegador.
O servidor 2DX é um banco de dados RDBMS que hospeda Stored Procedures que convertem dados serializados em formato normal e vice-versa. Os Stored Procedures representam um interpretador JavaScript cujo código fonte do programa é armazenado na forma normal. Além de confirmar os dados do cliente enviados, o servidor 2DX é capaz de executar programas orientados a objetos completos e habilitados para lógica de negócios escritos em JavaScript fortemente tipado. Ele se conecta às instâncias do cliente por meio do driver CGI.
À medida que mais empresas escolhem o NoSQL para um desempenho de consulta rápido, sua interoperabilidade com dados relacionais geralmente fica com a camada intermediária do aplicativo. O 2DX elimina a necessidade de camada intermediária com ambiente de programação hospedado em módulos armazenados persistentes nativos do RDBMS. Os dados enviados pelos clientes são processados e enviados para um banco de dados relacional. Os logs de transações com linhas de tabela atualizadas são publicados de forma assíncrona em um servidor NoSQL ou sistema de arquivos. As instâncias de banco de dados do cliente usam o último para recuperar logs de atualizações de dados relacionais para replicação e disponibilidade instantânea nas telas da interface do usuário. Depois que as transações pendentes são executadas nas instâncias do cliente, elas ficam sincronizadas com o banco de dados do servidor.
A configuração de cluster de banco de dados cliente/servidor 2DX garantirá baixa latência em ambientes de grandes volumes de dados onde a confirmação de solicitações de clientes para um banco de dados relacional é necessária. Além disso, esse cluster garantirá que as operações de entrada/saída do usuário sejam registradas nos logs de transação do RDBMS. Seu desempenho de renderização de interface do usuário pode abrir 2DX para uso em serviços de jogos da Web. O envio direto de logs de banco de dados entre componentes de banco de dados cliente e servidor do cluster que ignora a serialização e o servidor DBMS proprietário em substituição ao RDBMS genérico está planejado em versões futuras.