Public Preview

NetlyDB

Distributed NoSQL for .NET

Start embedded. Scale to a cluster when you need it.

Add a NoSQL database in seconds, with just one line of code.

builder.ConfigureServices((context, services) =>
{
    services.AddNetlyDB();
}

var app = builder.Build();

Easy querying (LINQ expressions)

var belgianUsers = users.Query()
    .Where(x => x.Country == "BE")
    .OrderBy(x => x.Name);

Blazing fast, at large scale

Large scale

12.4M

Total records

Fast

24ms

12k results

Distributed

3

Nodes online

What is NetlyDB?

NetlyDB is a .NET-native NoSQL document database designed for teams that want speed now and scale later. Store strongly typed documents, flexible dynamic JSON, and binary files in dedicated file (blob) collections. It can run embedded inside an application, expose APIs, provide a Management UI, and scale toward distributed clustered deployments with replication and reconciliation.

Features

Platform

.NET native, embedded or distributed, and easy to set up.

  • .NET native
  • Embedded or clustered
  • Developer-friendly C# SDK
  • Blazing fast
  • Modular and configurable
  • One-line registration

Core database

Typed, dynamic, and file collections in one engine.

  • Typed collections
  • Dynamic documents
  • File and blob collections
  • Compressed blob storage
  • File metadata and tags
  • Virtual folder paths

Querying

LINQ and SQL-style querying with familiar C# patterns.

  • LINQ-style queries
  • SQL-style string queries
  • Filters & sorting
  • Pagination
  • Aggregates & grouping
  • Nested fields

Search

Vector, semantic, and full-text search built in.

  • Vector similarity (cosine / dot / Euclidean)
  • Flat (exact) & HNSW indexes
  • Semantic search
  • Auto-generated embeddings
  • Full-text (BM25) keyword search

Indexing

Expression-based indexes and index-aware query planning.

  • Nested indexes
  • Compound indexes
  • Meta indexes
  • Query planning
  • Index-aware execution

Reliability

Crash-safe durability, deterministic recovery, and bounded memory.

  • WAL group-commit durability
  • Atomic snapshot generations
  • Deterministic recovery + reports
  • Indeterminate writes resolvable by id
  • Exclusive store ownership
  • Bounded memory limits
  • Chaos-test hardening

Security

Encryption, authentication, and TLS for production deployments.

  • Encryption at rest (AES-256-GCM)
  • API-key authentication
  • JWT / OIDC authentication
  • TLS for cluster replication
  • Cluster shared-secret auth

Observability

Diagnosable from outside the process, without leaking your data.

  • Published diagnostic code catalogue
  • Published metric catalogue
  • Five health projections
  • Structured events off the write path
  • Audit trail for destructive actions
  • Offline store inspection CLI
  • Query explain (no literals)
  • Live metrics dashboard

Tooling

Management UI, REST API, and AI/MCP integration.

  • Built-in Management UI
  • File browser with folders
  • Image & video thumbnails
  • REST API hosting
  • MCP / AI integration
  • API-ready architecture

See Editions for what's included free versus with an Enterprise license.

How it works

Add NetlyDB to your application with a single line and it lives alongside your application. It is modular and you can cherry-pick and configure exactly what you need from it. It is designed to be plug and play from code, without any required installation on the system.

Key components

NetlyDB Core

NetlyDB Core coordinates all primary services used by embedded and distributed deployments.

Core services handle collection lifecycles and wire the key runtime subsystems together so higher-level modules can stay composable.

Collection coordination

Tracks schemas, typed registries, and document pipelines.

Query and index flow

Routes queries through filtering, planning, and index-backed execution.

Persistence and recovery

Connects snapshot and datalog services for durable state.

Extensible hooks

Supports replication modules and optional hosted runtime services.

Modules are easy to implement:

builder.ConfigureServices((context, services) =>
{
    services.AddNetlyDB()
    .AddNetlyDBCollection<User>() //One line to create a strongly typed collection
    .AddNetlyDBAPI() //One line to create a self-hosted API
    .AddManagementUI() //One line to create a self-hosted management UI
    .AddNetlyDBMCP()//One line to create a self-hosted MCP Server
    .JoinCluster(); //One line to join another NetlyDB node in a distributed system
}

var app = builder.Build();

var users = app.Services.GetRequiredService<INetlyDBCollection<User>>();

users.Add(new User
{
    Name = "Alice",
    Role = "operator"
});

var operators = await users.ListAsync(x => x.Role == "operator");
Technical documentation

Code-first developer experience

users.Add(new User
{
    Name = "Alice",
    Role = "operator"
});

users.AddRange(
[
    new User { Name = "Bob", Role = "operator" },
    new User { Name = "Eve", Role = "auditor" }
]);

Use cases

🔵 Internal business applications

🔵 Warehouse and logistics systems

🔵 Edge and embedded applications

🔵 Real-time dashboards

🔵 File, image, and video storage

🔵 Attachments and blob storage

🔵 Game and simulation backends

🔵 AI-connected data applications

🔵 Distributed services

🔵 Local-first tooling

Editions

NetlyDB is free to use as an embedded, single-node database. Enterprise features add distribution, security, and operational tooling - unlocked with a license and verified fully offline (no license server).

Community

Free

The complete embedded, single-node engine - free for any use.

  • ✔ Embedded document engine (typed & dynamic)
  • ✔ File & blob collections with compression
  • ✔ LINQ and SQL-style querying
  • ✔ Expression-based indexing & query planning
  • ✔ Vector & semantic search (flat & HNSW)
  • ✔ Full-text (BM25) keyword search
  • ✔ Crash-safe durability (WAL group-commit)
  • ✔ Atomic snapshot generations & deterministic recovery
  • ✔ Diagnostic code & metric catalogues
  • ✔ Offline store inspection CLI
  • ✔ Sharding & TTL cleanup
  • ✔ Bounded memory (per-collection limits)
  • ✔ Custom storage providers (e.g. Azure Blob)
  • ✔ Full C# SDK, embedded in-process

Enterprise

Licensed

Everything in Community, plus distributed, secure, and operational capabilities.

  • 🔑 Clustering & replication (multi-node)
  • 🔑 REST API host
  • 🔑 Management UI
  • 🔑 MCP server (AI integration)
  • 🔑 Encryption at rest (AES-256-GCM)
  • 🔑 Advanced authentication (JWT / OIDC)
  • 🔑 Observability export (metrics & health checks)
How licensing works

Timeline

Where NetlyDB came from, and where it is going.

2025
Q1

2025 Q1

Core Foundation

Storage abstractions, sharding, persistence and indexing foundations.

Cross Platform

Android and MAUI support with platform-specific storage handling.

Q2

2025 Q2

File Collections

Binary document storage for blobs to support all types of files.

Management UI

Operational views, reusable UI components and system metrics.

Clustering Foundation

Support for distributed node setup, with basic replication and failover.

Q3

2025 Q3

Typed Collections

Strongly typed collection registration and cluster-wide type propagation.

Indexing Maturity

Nested, compound and stale-index handling improved.

File Collections tooling

Thumbnails, previews and video streaming.

Q4

2025 Q4

gRPC Replication

Queue-driven replication with WebSockets as control plane.

Runtime Telemetry

Queue depth, active replication and cluster heartbeat diagnostics.

2026
Q1

2026 Q1

Self Healing

Snapshot repair, stale checkpoint recovery and stronger replication negotiation.

Lifecycle Control

Per-document TTL and distributed cleanup services.

Mutation Queries

Update and delete queries through the shared query pipeline.

Q2

2026 Q2

Chaos Testing

Fault injection, partitions, corrupted snapshots and convergence validation.

AI Integration

MCP tooling, structured query translation and AI-ready access.

Q3

2026 Q3

Lifecycle & Ownership

An explicit engine state machine, exclusive store ownership and a write-admission gate.

Durable Mutations

One mutation pipeline over a versioned, checksummed write-ahead log, with resolvable outcomes.

Snapshots & Recovery

Atomically published snapshot generations and deterministic recovery that stops on ambiguity.

Index & Query Safety

Versioned index generations the planner respects, and one semantic model behind every query front end.

Production Hardening

Prepare for operational use in larger scale products. Scale up chaos testing, stress testing and focus on robustness.

Q4

2026 Q4

Providers & Replication

Proven storage-provider guarantees, and replication with provenance, de-duplication and negotiated protocol versions.

Observability & Operations

Published diagnostic code and metric catalogues, health projections, an audit trail and offline store inspection.

Release Candidate

NetlyDB is ready to be used in operational products. Closed private pilot project with real enterprise customer first. Public release after pilot period.

Road Ahead

Distributed querying, dashboards, profiling and edge-first deployment.

Interactive NetlyDB Playground

Query 50,000 demo orders using real, read-only NetlyDB query execution.

Note: this demo is running on very limited hardware

Results: 4,976 matches
Elapsed: 152.89 ms

Equivalent C# usage

var result = await orders.Query().Where(x => x.Country == "BE").ToListAsync();

JSON results (showing top 25 of 4,976)

[
  {
    "Reference": "ORD-010237",
    "CustomerName": "Summit Pulse Systems",
    "Country": "BE",
    "Status": "Pending",
    "Total": 19086.48,
    "CreatedAt": "2026-12-31T16:17:08Z",
    "Priority": "High",
    "LineCount": 17
  },
  {
    "Reference": "ORD-015800",
    "CustomerName": "Nova Stone Supplies",
    "Country": "BE",
    "Status": "Open",
    "Total": 13352.66,
    "CreatedAt": "2026-12-30T23:11:56Z",
    "Priority": "Low",
    "LineCount": 22
  },
  {
    "Reference": "ORD-017089",
    "CustomerName": "Global Stone Industries",
    "Country": "BE",
    "Status": "Pending",
    "Total": 7604.92,
    "CreatedAt": "2026-12-30T03:32:10Z",
    "Priority": "Medium",
    "LineCount": 19
  },
  {
    "Reference": "ORD-002001",
    "CustomerName": "North Forest Retail",
    "Country": "BE",
    "Status": "Pending",
    "Total": 17312.28,
    "CreatedAt": "2026-12-30T01:07:17Z",
    "Priority": "Low",
    "LineCount": 5
  },
  {
    "Reference": "ORD-014100",
    "CustomerName": "Grand Grid Industries",
    "Country": "BE",
    "Status": "Closed",
    "Total": 34650.87,
    "CreatedAt": "2026-12-29T23:12:37Z",
    "Priority": "Low",
    "LineCount": 36
  },
  {
    "Reference": "ORD-018867",
    "CustomerName": "Rapid Stone Works",
    "Country": "BE",
    "Status": "Closed",
    "Total": 47458.87,
    "CreatedAt": "2026-12-29T00:33:53Z",
    "Priority": "High",
    "LineCount": 27
  },
  {
    "Reference": "ORD-026162",
    "CustomerName": "Ever Pulse Partners",
    "Country": "BE",
    "Status": "Closed",
    "Total": 26016.07,
    "CreatedAt": "2026-12-28T05:15:43Z",
    "Priority": "Medium",
    "LineCount": 28
  },
  {
    "Reference": "ORD-046157",
    "CustomerName": "Nova Pulse Retail",
    "Country": "BE",
    "Status": "Open",
    "Total": 23058.82,
    "CreatedAt": "2026-12-28T04:01:12Z",
    "Priority": "Medium",
    "LineCount": 26
  },
  {
    "Reference": "ORD-002975",
    "CustomerName": "Grand Bridge Works",
    "Country": "BE",
    "Status": "Open",
    "Total": 19906.62,
    "CreatedAt": "2026-12-28T00:22:41Z",
    "Priority": "Critical",
    "LineCount": 27
  },
  {
    "Reference": "ORD-040818",
    "CustomerName": "Urban Pulse Logistics",
    "Country": "BE",
    "Status": "Closed",
    "Total": 37161.98,
    "CreatedAt": "2026-12-27T23:30:24Z",
    "Priority": "Low",
    "LineCount": 34
  },
  {
    "Reference": "ORD-049049",
    "CustomerName": "Global Point Labs",
    "Country": "BE",
    "Status": "Cancelled",
    "Total": 42261.63,
    "CreatedAt": "2026-12-27T12:42:30Z",
    "Priority": "High",
    "LineCount": 14
  },
  {
    "Reference": "ORD-031509",
    "CustomerName": "Prime Bridge Retail",
    "Country": "BE",
    "Status": "Cancelled",
    "Total": 7585.08,
    "CreatedAt": "2026-12-27T07:48:10Z",
    "Priority": "High",
    "LineCount": 7
  },
  {
    "Reference": "ORD-026778",
    "CustomerName": "Prime Stone Partners",
    "Country": "BE",
    "Status": "Closed",
    "Total": 38421.08,
    "CreatedAt": "2026-12-27T07:22:19Z",
    "Priority": "High",
    "LineCount": 14
  },
  {
    "Reference": "ORD-041316",
    "CustomerName": "Blue Market Partners",
    "Country": "BE",
    "Status": "Pending",
    "Total": 7069.56,
    "CreatedAt": "2026-12-27T03:12:04Z",
    "Priority": "High",
    "LineCount": 30
  },
  {
    "Reference": "ORD-049587",
    "CustomerName": "Silver Market Systems",
    "Country": "BE",
    "Status": "Pending",
    "Total": 10363.81,
    "CreatedAt": "2026-12-26T22:52:41Z",
    "Priority": "Critical",
    "LineCount": 5
  },
  {
    "Reference": "ORD-013334",
    "CustomerName": "North Line Supplies",
    "Country": "BE",
    "Status": "Pending",
    "Total": 30591.05,
    "CreatedAt": "2026-12-26T22:42:30Z",
    "Priority": "Critical",
    "LineCount": 21
  },
  {
    "Reference": "ORD-025056",
    "CustomerName": "Prime Forest Systems",
    "Country": "BE",
    "Status": "Pending",
    "Total": 32004.85,
    "CreatedAt": "2026-12-26T11:59:59Z",
    "Priority": "Critical",
    "LineCount": 3
  },
  {
    "Reference": "ORD-017383",
    "CustomerName": "Urban Market Works",
    "Country": "BE",
    "Status": "Pending",
    "Total": 21425.98,
    "CreatedAt": "2026-12-26T01:00:25Z",
    "Priority": "Low",
    "LineCount": 40
  },
  {
    "Reference": "ORD-001160",
    "CustomerName": "Urban Bridge Works",
    "Country": "BE",
    "Status": "Pending",
    "Total": 19439.16,
    "CreatedAt": "2026-12-26T00:18:51Z",
    "Priority": "Critical",
    "LineCount": 3
  },
  {
    "Reference": "ORD-000928",
    "CustomerName": "Silver Stone Labs",
    "Country": "BE",
    "Status": "Open",
    "Total": 7475.70,
    "CreatedAt": "2026-12-25T15:23:17Z",
    "Priority": "High",
    "LineCount": 24
  },
  {
    "Reference": "ORD-038343",
    "CustomerName": "Summit Line Logistics",
    "Country": "BE",
    "Status": "Pending",
    "Total": 37194.17,
    "CreatedAt": "2026-12-25T11:44:30Z",
    "Priority": "Medium",
    "LineCount": 38
  },
  {
    "Reference": "ORD-035173",
    "CustomerName": "Rapid Peak Trading",
    "Country": "BE",
    "Status": "Cancelled",
    "Total": 37415.40,
    "CreatedAt": "2026-12-25T01:50:26Z",
    "Priority": "Medium",
    "LineCount": 17
  },
  {
    "Reference": "ORD-003945",
    "CustomerName": "Urban Harbor Logistics",
    "Country": "BE",
    "Status": "Cancelled",
    "Total": 37723.34,
    "CreatedAt": "2026-12-24T23:03:04Z",
    "Priority": "Low",
    "LineCount": 35
  },
  {
    "Reference": "ORD-046432",
    "CustomerName": "Global Grid Holdings",
    "Country": "BE",
    "Status": "Open",
    "Total": 22829.66,
    "CreatedAt": "2026-12-24T19:49:43Z",
    "Priority": "Critical",
    "LineCount": 26
  },
  {
    "Reference": "ORD-021510",
    "CustomerName": "Rapid Point Labs",
    "Country": "BE",
    "Status": "Closed",
    "Total": 35590.45,
    "CreatedAt": "2026-12-24T14:22:59Z",
    "Priority": "Medium",
    "LineCount": 32
  }
]

Build data-driven .NET applications without starting with operational complexity.

An unhandled error has occurred. Reload X