Skip to main content
Stores handle data persistence in NativeLink. Each store has a unique name and type.

Store Definition

name
string
required
Unique identifier for the store. Used to reference the store in other configuration sections.
<type>
object
required
Store type and its configuration. Only one type can be specified per store.

Store Types

In-memory hashmap store with optional eviction.
{
  name: "MEMORY_STORE",
  memory: {
    eviction_policy: {
      max_bytes: "1gb"
    }
  }
}
eviction_policy
object
Controls when items are evicted from the store.

Specialized Stores

Completeness Checking

Verifies Action Cache results reference existing CAS objects.
{
  name: "AC_STORE",
  completeness_checking: {
    backend: { /* AC store */ },
    cas_store: { ref_store: { name: "CAS_STORE" } }
  }
}

Existence Cache

Caches has() calls for faster lookups.
{
  name: "CACHED_STORE",
  existence_cache: {
    backend: { /* store config */ },
    eviction_policy: { max_seconds: 100 }
  }
}

Dedup Store

Content-defined chunking for deduplication.
{
  name: "DEDUP_STORE",
  dedup: {
    index_store: { /* small/fast store */ },
    content_store: { /* large store */ },
    min_size: "64kb",
    normal_size: "256kb",
    max_size: "512kb"
  }
}

Size Partitioning

Routes blobs by size.
{
  name: "PARTITIONED_STORE",
  size_partitioning: {
    size: "128mb",
    lower_store: { /* small blob store */ },
    upper_store: { /* large blob store */ }
  }
}

Build docs developers (and LLMs) love