Features

Database Model

Structure

Document/object database with graph support

Data Format
Schema

Declarative [YAML[(https://yaml.org/) and Protocol Buffers

Reading

Query builder in your target language, with update subscriptions: TypeScript, Go

Writing

Named JavaScript mutation functions stored in the schema, for CRDT or plain old data

Transactions

Fully ACID with transaction boundaries defined in-schema

Relations

References embedded in objects, as regular Protobuf fields, with graph traversal at query

Stable Identifiers

Pseudo-Random Number Generator of any size running on both client and server

Schema Upgrades

No-downtime, client-side compatibility paradigm, optional batch transformation on server

Management Interface

Web Interface

Integrated monitoring, data mangement and end-user management

Management API

gRPC and gRPC-Web over TLS

Availability

Backups

Semantic mutation log and snapshots, hot-standby

Data Locality

Location-transparent database URI, hierarchies of database caches, including on-device

Offline Support

Hierarchies of synchronized databases, e.g. by failure domain; client-side cache and local database

Freshness Indicators

Information about query result freshness and mutation propagation progress

Security

Authentication

ECDSA, TLS client certificates, OpenID Connect, pre-shared key, QR-Code

Authorization

Object-level scopes with flexible, fine-grained, delegation between users; ABAC, RBAC, ACL and variations

Limited-Time Privileges

Pre-shared codes can be stored securely and accessed only to "break the glass", limited in scope, time and number of requests

Data Exfiltration Protection

Built-in query sanitation to disallow range queries

Data Ownership

Either through a role account, and/or per-user accounts; with documented transfer path

Impersonation

Yes, one user can act as another user with the right permissions

Default Security

An account only has access to its own data

Connectivity

Network Protocol
Security

Required TLS

Client Code

Languages

TypeScript and Go, with client-side WASM for offline

Integrations