RxDB: Banco de dados reativo local-first para JavaScript

#javascript

RxDB: Banco de dados local-first reativo

RxDB (Reactive Database) é um banco de dados NoSQL rápido, local-first e reativo para aplicações JavaScript. Funciona offline, com sincronização automática e oferece zero latência para consultas locais. Com suporte a TypeScript, esquemas JSON e replicação em tempo real.

Acesse o site oficial

Arquitetura local-first/offline-first

O RxDB adota o paradigma local-first, armazenando dados diretamente no cliente (browser, Node.js, React Native, Electron). A sincronização com o backend ocorre de forma assíncrona em background, permitindo que o app continue funcionando mesmo sem conexão. Isso garante zero latência para leitura e escrita locais.

Saiba mais sobre offline-first

Motor de sincronização em tempo real

O RxDB Sync Engine permite sincronizar o estado do banco em realtime entre clientes e servidor. Suporta protocolos de replicação com GraphQL, CouchDB, WebSocket, WebRTC (P2P), Supabase, Firestore, NATS e Google Drive. Quando offline, mudanças são armazenadas localmente e sincronizadas automaticamente ao reconectar.

Explore replicação em tempo real

Reatividade com RxJS e Observables

RxDB usa RxJS internamente para observables e streams. Queries e campos de documentos retornam observables que permitem se inscrever a mudanças de estado. Integra-se facilmente com Angular Signals e outros sistemas de reatividade customizados para atualizar a UI automaticamente.

Entenda a reatividade

Segurança e criptografia

RxDB oferece encriptação em nível de campo ou documento no lado do cliente. Os dados sensíveis são criptografados no armazenamento local, mantendo privacidade mesmo se o storage local for acessado. Suporta esquemas JSON para validação de dados.

Leia sobre segurança offline

Flexibilidade de armazenamento

RxDB abstrai a camada de armazenamento (RxStorage), permitindo usar diferentes engines: IndexedDB (browsers), SQLite (Node.js/mobile), OPFS, FoundationDB, memória e LokiJS. Isso torna possível otimizar RxDB para diversos cenários.

Banco de dados para Node.js

Integração com MongoDB Atlas

RxDB pode ser integrado com MongoDB Atlas para sincronização cloud-persistent. Um RxDB Server (Node.js) gerencia a replicação entre instâncias locais dos clientes e o Atlas, mantendo velocidade local e persistência centralizada.

Veja integração com MongoDB

Suporte multi-aba e multi-janela

RxDB sincroniza automaticamente dados entre abas/janelas do navegador. Mudanças em uma aba são propagadas instantaneamente para outras sem recarregar a página. Funciona completamente serverless para este cenário.

Casos de uso ideais

RxDB é ideal para aplicações realtime baseadas em UI, PWAs, aplicações móveis offline-first, electron apps e qualquer cenário que demande sincronização em realtime com backend flexível. Grande escalabilidade em edge e reduz carga do backend.

Aplicações de latência zero