Expand description
Valence is a schema-driven ORM for Rust: declare typed tables with
valence_schema!, generate Model CRUD at build time, and wire storage through
Valence::builder without locking into one database.
Typed schemas and models with composable storage adapters.
§Features
- Schema DSL — fields, connections, policies, ownership, TTL, and trait mixins
(
valence_schema!,valence_trait_schema!) - Build-time codegen — typed models from host
schemas/viavalence-codegen - Composable backends — in-memory, SQLite, IndraDB, SurrealDB, Postgres, MongoDB, Redis
- Multi-backend routing — one
DatabaseRouter; each schema picks a backend withdatabase:/DatabaseFromEngine - Host ports — secrets, actor identity, endpoints, and telemetry injected at boot
- Privacy-aware CRUD — policy and ownership hooks on generated
Modelpaths
Enable backends with Cargo features (mem is the default). The crate README.md lists every
feature flag and environment variable.
§Getting started
Follow these steps in order. Each linked API page includes details for that task.
§1. Choose and wire storage
| Backend | Type | Feature | Topology | When to use |
|---|---|---|---|---|
| In-memory | InMemoryBackend | mem (default) | embedded | Local experiments; tests |
| SQLite | SqliteBackend | sqlite | embedded | Durable single-host store |
| IndraDB | IndradbBackend | indradb | embedded | Graph-oriented workloads |
| SurrealDB | SurrealEmbeddedBackend | surreal | embedded | Surreal engine in-process |
| Postgres | PostgresBackend | postgres | remote | Wire Postgres (DATABASE_URL) |
| MongoDB | MongoBackend | mongodb | remote | Wire Mongo (VALENCE_MONGODB_URI) |
| Redis | RedisBackend | redis | remote | Wire Redis (VALENCE_REDIS_URL) |
§Select a backend in the schema
A schema does not contain a backend instance. Its database: field points to a stable
DatabaseFromEngine evaluator. The evaluator combines:
- a logical name (for example
"default") that must matchValenceBuilder::add_backend, and - an engine ID exported by the selected adapter.
Define COUNTER_DB for the backend you enable:
| Backend | COUNTER_DB declaration |
|---|---|
| In-memory | Database::from_engine("default", MEM_ENGINE_ID) |
| SQLite | Database::from_engine("default", SQLITE_ENGINE_ID) |
| IndraDB | Database::from_engine("default", INDRADB_ENGINE_ID) |
| SurrealDB | Database::from_engine("default", SURREAL_ENGINE_ID) |
| Postgres | Database::from_engine("default", POSTGRES_ENGINE_ID) |
| MongoDB | Database::from_engine("default", MONGODB_ENGINE_ID) |
| Redis | Database::from_engine("default", REDIS_ENGINE_ID) |
Then use that evaluator in the same Counter schema:
use valence::{Database, DatabaseFromEngine, FieldType, valence_schema};
// Choose the engine constant for the enabled backend.
pub const COUNTER_DB: DatabaseFromEngine =
Database::from_engine("default", valence::MEM_ENGINE_ID);
valence_schema! {
Counter {
table: "counter",
version: "0.1.0",
description: "Simple counter",
database: COUNTER_DB,
fields: [
id: { r#type: FieldType::String, primary_key: true, required: true },
value: { r#type: FieldType::Integer, required: true },
],
}
}Omitting database: selects DEFAULT_IN_MEMORY ("default" +
MEM_ENGINE_ID). If that router key is absent, the current runtime falls back to its
active/default backend. Declare database: explicitly for clear behavior and for any runtime
with multiple backends.
In-memory first run:
use std::sync::Arc;
use valence::{
Database, DatabaseFromEngine, FieldType, InMemoryBackend, Valence, MEM_ENGINE_ID,
valence_schema,
};
const COUNTER_DB: DatabaseFromEngine =
Database::from_engine("default", MEM_ENGINE_ID);
valence_schema! {
Counter {
table: "counter",
version: "0.1.0",
database: COUNTER_DB,
fields: [
id: { r#type: FieldType::String, primary_key: true, required: true },
value: { r#type: FieldType::Integer, required: true },
],
}
}
let valence = Valence::builder()
.add_backend("default", Arc::new(InMemoryBackend::new()))
.build()?;
assert_eq!(valence.backend_for_table("counter")?.engine_id(), MEM_ENGINE_ID);Runnable: cargo run -p valence --example quickstart --features mem
§2. Declare schemas
Schemas are the typed contracts Valence registers and (via codegen) turns into models.
use valence::{
Database, DatabaseFromEngine, FieldType, MEM_ENGINE_ID, valence_schema,
};
const COUNTER_DB: DatabaseFromEngine =
Database::from_engine("default", MEM_ENGINE_ID);
valence_schema! {
Counter {
table: "counter",
version: "0.1.0",
description: "Simple counter",
database: COUNTER_DB,
fields: [
id: { r#type: FieldType::String, primary_key: true, required: true },
value: { r#type: FieldType::Integer, required: true },
],
}
}Replace MEM_ENGINE_ID with the engine constant from the table in step 1 when the Counter
belongs on another backend.
See valence_schema! and valence_trait_schema! for the DSL field reference.
Minimal schema example: workspace examples/minimal-schema.
Macros and valence-codegen share one syn DSL parser (valence-schema-dsl), so
host schemas/*_valence_schema.rs files accept the same syntax and semantics
(including database: evaluators).
§3. Set up build-time codegen
Typed Model impls are generated at compile time from schema files under
schemas/ (for example widget_valence_schema.rs). Add a build dependency and a
one-line build.rs:
[dependencies]
uf-valence = { git = "https://github.com/unified-field-dev/valence", package = "uf-valence", features = ["mem"] }
[build-dependencies]
uf-valence-codegen = { git = "https://github.com/unified-field-dev/valence", package = "uf-valence-codegen" }// build.rs
fn main() {
valence_codegen::build().expect("valence codegen failed");
}Include generated models (this is what must be linked for typed CRUD and inventory):
valence::include_generated_models!();Schema files under schemas/ are scan inputs for codegen; they are not
mod-linked. End-to-end proof: workspace examples/codegen-host and
examples/product-model-host. See the
valence-codegen crate docs for custom roots via
build_with / CodegenConfig.
§4. Use generated models (CRUD)
After codegen, call Model methods with a Valence runtime:
use valence::Model;
// Widget is generated from schemas/widget_valence_schema.rs
let created = Widget::create(widget, &valence).await?;
let loaded = Widget::get(created.id(), &valence).await?;
Widget::update(created.id(), updated, &valence).await?;
Widget::delete(created.id(), &valence).await?;Product-shaped schemas and connections: examples/product-model-host.
§5. Route multiple backends
One Valence holds a heterogeneous DatabaseRouter. Schema database: evaluators
pick the router key per table.
use std::sync::Arc;
use valence::{InMemoryBackend, Valence, router_key, MEM_ENGINE_ID};
let primary = router_key("primary", MEM_ENGINE_ID);
let valence = Valence::builder()
.add_backend("primary", Arc::new(InMemoryBackend::new()))
.add_backend("archive", Arc::new(InMemoryBackend::new()))
.default_backend_key(primary)
.build()?;Runnable: cargo run -p valence --example multi_backend --features mem
§6. Inject host ports
Optional builder methods wire secrets, actor identity, endpoints, and telemetry:
ValenceBuilder::secret_provider, ValenceBuilder::actor_factory,
ValenceBuilder::endpoint_resolver, ValenceBuilder::telemetry_sink.
Port table and reference impls: valence_core::ports. Storage adapter contract and
third-party checklist: DatabaseBackend. Router semantics: DatabaseRouter.
use std::sync::Arc;
use valence::{
ConsoleSink, EnvSecretProvider, InMemoryBackend, JsonActorFactory, NoopEndpointResolver,
Valence,
};
let _valence = Valence::builder()
.add_backend("default", Arc::new(InMemoryBackend::new()))
.secret_provider(Arc::new(EnvSecretProvider))
.actor_factory(Arc::new(JsonActorFactory))
.endpoint_resolver(Arc::new(NoopEndpointResolver))
.telemetry_sink(Arc::new(ConsoleSink))
.build()?;§How the pieces link together
schemas/*.rs ──► build.rs (valence_codegen::build) ──► $OUT_DIR/generated_models.rs
(scan inputs) │
│ include_generated_models!
▼
impl Model + inventory submit
│
SchemaRegistry ◄────────────────┤
▼
typed CRUD on Valence
│
Valence runtime ◄── DatabaseRouter / backendsDependency rules: valence-core owns ports and runtime (no engine SDK);
valence-backend-* advertise open ENGINE_IDs; the facade re-exports behind features;
apps own schema roots and call valence-codegen from build.rs; one operation stays on
one backend; host adapters inject at boot.
§Next steps
| Task | Start here |
|---|---|
| Schema DSL fields | valence_schema!, valence_trait_schema! |
| Build-time codegen | valence-codegen, examples/codegen-host |
| Wire storage | Valence::builder(), InMemoryBackend |
| Model CRUD | Model, examples/product-model-host |
| Multi-backend routing | DatabaseRouter, multi_backend example |
| Custom adapter | DatabaseBackend, examples/acme-valence-backend-stub |
| SQLite | SqliteBackend, quickstart_sqlite example |
| IndraDB | IndradbBackend, quickstart_indradb example |
| Surreal embedded | SurrealEmbeddedBackend, surreal_embedded example |
| Postgres | PostgresBackend, quickstart_postgres (env-gated) |
| MongoDB | MongoBackend, quickstart_mongodb (env-gated) |
| Redis | RedisBackend, quickstart_redis (env-gated) |
| Admin runtime | SchemaRegistry, QueryCore, examples/admin-runtime-host |
| Config / env vars | crate README.md |
§Entry points
prelude— ergonomic schema authoring importsValence/ValenceBuilder— runtime assemblyvalence_schema!— schema DSL macroModel— generated CRUD surfaceDatabaseBackend/DatabaseRouter— storage ports
§Prerequisites and gotchas
- Enable backend features explicitly (
memis on by default). - Product schemas and codegen roots belong in your application.
- Wire adapters (postgres/mongodb/redis) need live URLs; examples skip cleanly when unset.
- SurrealDB support lives in
valence-backend-surreal(featuresurreal), not in core ports. - Generated models (or macro-expanded schemas) must be linked into the binary or
inventorywill not see them.
§Runnable examples
| Example | Features | Notes |
|---|---|---|
quickstart | mem | Schema + mem boot + registry proof |
multi_backend | mem | Multiple logical backends |
quickstart_sqlite | sqlite | Embedded SQLite |
quickstart_indradb | indradb | Embedded IndraDB |
surreal_embedded | surreal | Surreal mem engine |
quickstart_postgres | postgres | Requires DATABASE_URL |
quickstart_mongodb | mongodb | Requires VALENCE_MONGODB_URI |
quickstart_redis | redis | Requires VALENCE_REDIS_URL |
quickstart_telemetry | mem,telemetry-console | Console telemetry sink |
cargo run -p valence --example quickstart --features mem
cargo run -p valence --example quickstart_sqlite --features sqlite
cargo run -p valence --example quickstart_indradb --features indradb
cargo run -p valence --example surreal_embedded --features surrealModules§
- actor
- Actor identity for privacy checks and audit trails.
- admin_
entity_ delete - Table-keyed queued delete for admin tooling.
- backend
- Pluggable database backends for Valence.
- batch
- Batch create hooks for codegen
BatchCreatableimpls (full batch runtime is host-owned). - compiled_
query - Parameterized statement for
crate::backend::DatabaseBackend::execute_compiled_query. - compiled_
query_ factory - Dialect-specific compiled queries for deletion DAG and ownership helpers.
- connection
- Connection cardinality, delete semantics, and id helpers for generated models.
- database_
retry - Retry database operations when the engine reports retryable transaction contention.
- deletion
- Cascading delete orchestration — dispatch hooks and DAG planning.
- entity
- Privacy-filtered entity view for admin tooling.
- error
- Error types for Valence routing and backends.
- evaluator
- Runtime resolution of which
crate::backend::DatabaseBackenda schema uses. - instrumentation
- Instrumentation hooks for Valence runtime metrics and events.
- inventory
- github crates-io docs-rs
- iter
- Row-level iter descriptor types for
valence_schema! { iters: [...] }. - known_
engines - Stable engine id slugs for first-party reference adapters.
- model
- Model contracts generated from schema DSL.
- owner_
ref - Stable owner identity for row-level ownership metadata.
- ownership
- First-class data ownership (platform tables + hooks from generated CRUD).
- ports
- Host-injectable ports (secrets, identity, endpoints).
- prelude
- Ergonomic imports for schema authoring and generated models.
- privacy
- Field-level privacy evaluation for generated models and admin queries.
- privacy_
policies - Re-export built-in privacy policy constants for schema authors.
- query
- Admin/query builder — composable filters, sorts, and compiled SQL execution.
- query_
compiler - Query compilation from
crate::query::QueryCoretocrate::compiled_query::CompiledQuery. - query_
compiler_ registry - Registry mapping
DatabaseBackend::engine_idto query compilers. - read_
cache - Valence-wide read-through LRU for
Model::get-shaped point reads. - record_
id - Backend-agnostic record identifier (
table+id). - reference
- Reference placeholders for batch entity creation.
- registry
- Generic string-keyed registry (inventory + HashMap, no quark dependency).
- router
- Named backend registry (heterogeneous engines per router).
- router_
key - Compound router keys:
"{engine_id}:{logical_name}". - row_
json - JSON row helpers shared by query fetch paths.
- runtime
- Valence runtime handle and builder.
- schema
- Schema metadata registration hooks for
valence_schema!. - schema_
api - Structured schema metadata produced by the Valence DSL.
- schema_
types - DSL type vocabulary used by
valence_schema!andvalence_trait_schema!. - side_
effect - Side effect types for post-mutation hooks.
- trait_
registry - Runtime trait metadata registry.
- trait_
schema - Trait schema metadata for
valence_trait_schema!. - ttl
- Table-level TTL policy hooks.
- validation
- Field validation framework
Macros§
- include_
generated_ models - Include
$OUT_DIR/generated_models.rsproduced byvalence_codegen::build. - valence_
schema - Defines a Valence model schema at compile time.
- valence_
trait_ schema - Defines a reusable trait schema (fields, optional connections, optional policies).
Structs§
- Backend
Capabilities - Capabilities advertised by a storage adapter (telemetry labels and contract tests).
- Compiled
Query - Console
Sink - Writes telemetry to stderr (development and bench).
- Database
- Convenience namespace for built-in evaluators.
- Database
From Engine - Built-in evaluator: look up
logical_name+engine_idon aDatabaseRouter. - Database
Router - Maps compound router keys to concrete
DatabaseBackendimplementations. - Deletion
Request - Payload passed to the registered deletion dispatcher (typically starts a host job orchestrator).
- Deletion
Service - EnvEndpoint
Resolver - Resolve physical database URLs from env at bootstrap.
- EnvSecret
Provider - Read secrets from process environment variables (
key= env var name). - Field
Change - Foreign
KeyRef - Normalized foreign-key/reference metadata for a field.
- HopSource
- A previous query in the hop chain. Compiled at execution time.
- InMemory
Backend - In-memory
DatabaseBackendstoring rows and graph edges in process memory. - Indra
Query Compiler - Compiles
QueryCoreto parameterized SQL (document-row subset) for IndraDB. - Indradb
Backend - Embedded IndraDB
DatabaseBackendmapping Valence tables to vertex types. - Instrumented
Backend - Wraps an inner backend and emits instrumentation telemetry on every I/O call.
- Iter
Descriptor - One registered iter implementation for a table (submitted by
valence_schema!). - Iter
Evaluation - Result of an iter
should_runhook. - Json
Actor Context ActorContextthat stores JSON as-is.- Json
Actor Factory - Reference factory that wraps JSON in
JsonActorContext. - Known
Engines - Well-known
DatabaseBackend::engine_id values shipped with this workspace. - Mongo
Backend - MongoDB-backed
DatabaseBackendstoring JSON documents per collection. - Mongo
Query Compiler - Compiles
QueryCorefor the MongoDB adapter. - Mutation
- Mutation
Timer - Timer for mutation wall time (L1).
- NoOp
Secret Provider - Always returns
Ok(None)— default when no provider is configured. - NoOp
Sink - Discards all telemetry (default for tests and minimal hosts).
- Noop
Endpoint Resolver - Always returns
Ok(None). - Owner
Ref - Resolved owner for a row (stored in ownership tables at the host layer).
- Ownership
Config - Ownership behavior declared in schema DSL (
ownership: { ... }). - Ownership
Service - Ownership persistence and transfer helpers.
- Postgres
Backend - Postgres-backed
DatabaseBackendusing JSONB document rows. - Privacy
Error - Error returned when a privacy rule blocks field access.
- Privacy
Evaluator - Privacy evaluation engine
- Query
Compiler Registry - Resolves a
QueryCompilerfor a storage engine slug. - Query
Core - Core query builder that compiles per registered engine.
- Record
Id - Recorded
Counter - Captured counter increment.
- Recorded
Event - Captured structured log event.
- Recorded
Gauge - Captured gauge sample.
- Recording
Sink - Append-only in-memory sink for assertions in unit and integration tests.
- Redis
Backend - Redis-backed
DatabaseBackendstoring JSON documents per table/id key. - Redis
Query Compiler - Compiles
QueryCorefor the Redis adapter. - Reference
- Referenced
Entity - Register
Embedded Logical Names Options - Options for embedded logical name registration.
- Resolver
Context - Router
Valence Factory ValenceFactorybacked by a sharedDatabaseRouter.- Router
Valence Factory Config - Host wiring template applied when building from a shared router.
- Schema
- Complete runtime schema produced from
valence_schema!. - Schema
Connection - Connection/relationship definition from schema DSL.
- Schema
Connections Overlay Init - Codegen-submitted trait-merged connections for deletion graph and tooling.
- Schema
Edge - Edge/relationship definition retained for older schema shapes.
- Schema
Field - Expanded metadata for one field declared in
fields: [...]. - Schema
Meta - Schema metadata summary block.
- Schema
Metadata Init - Lazy initializer submitted via
inventory::submit!. - Schema
Policies - Full entity-level policy declaration for the schema.
- Schema
Policy Rule - One policy rule reference stored in schema metadata.
- Schema
Policy Rules - Policy rule buckets for a single CRUD operation.
- Schema
Privacy - Top-level privacy summary for a schema.
- Schema
Registry - Owned registry for schema metadata.
- Schema
TtlPolicy - SqlQuery
Compiler - Compiles
QueryCoreto parameterized SQL. - Sqlite
Backend - SQLite-backed
DatabaseBackendusing JSON document rows. - Static
Endpoint Resolver - In-memory map of logical name → URL.
- Surreal
Embedded Backend - Wraps a local Surreal handle (memory, RocksDB, etc.).
- Surreal
Query Compiler - Compiles
QueryCoreto parameterized SurrealQL. - Surreal
Remote Backend - Wraps a remote-capable
Surreal<Any>client (WebSocket / HTTP / …). - Trait
Definition - Runtime metadata for a single Valence trait definition.
- Trait
Definition Init - Lazy initializer for trait definitions.
- Trait
Field Def - Minimal field descriptor stored in trait definitions.
- Trait
Implementor - Links a concrete table to the trait it implements.
- Trait
Policies - Entity-level privacy policies declared by a trait.
- Trait
Policy Rules - Policy rule names for a single CRUD operation bucket.
- Trait
Registry - Valence
- Host-assembled Valence handle.
- Valence
Builder - Builder for constructing a
Valenceruntime. - Valence
Entity
Enums§
- Actor
- Who or what is performing a Valence operation.
- Backend
TtlCapability - Cardinality
- Date
Time Predicate - Predicate for datetime fields.
- Embedded
Engine - Embedded Surreal engine selection.
- Error
- Field
Operation - Field access direction for privacy checks.
- Field
Type - Field data types accepted by the Valence DSL.
- HopType
- Describes how a hop connects a source query to a target query.
- IntPredicate
- Predicate for integer fields.
- Mutation
Kind - Null
Predicate - Predicate for checking null/not-null on optional fields.
- OnDelete
- Owner
Kind - Kind of principal that owns a row.
- Privacy
Operation - Which CRUD operation is being checked.
- Record
Predicate - Predicate for record-link fields (stored as Surreal
RecordId). - Role
- Role markers used by older privacy/mutation DSL shapes.
- Sort
Direction - Sort direction for ordering query results.
- String
Predicate - Predicate for string/text fields.
- Validator
- Built-in validators attachable to schema or trait fields.
Constants§
- DEFAULT_
EMBEDDED_ SURREAL_ LOGICAL_ NAMES - Include in bootstrap registration so schemas that omit explicit
database:still resolve. - DEFAULT_
IN_ MEMORY - DEFAULT_
IN_ MEMORY_ ROUTER_ KEY - Router key for default in-memory backend (
inmemory_mem:default). - INDRADB_
ENGINE_ ID - Stable engine slug for router keys (
indradb:logical_name). - INDRADB_
PRIMARY - Schema evaluator const for
database:routing. - MEM_
ENGINE_ ID - Stable engine slug for router keys (
inmemory_mem:logical_name). - MONGODB_
ENGINE_ ID - Stable engine slug for router keys (
mongodb:logical_name). - MONGODB_
PRIMARY - Schema evaluator const for
database:routing. - POSTGRES_
ENGINE_ ID - Stable engine slug for router keys (
postgres:logical_name). - POSTGRES_
PRIMARY - Schema evaluator const for
database:routing. - REDIS_
ENGINE_ ID - Stable engine slug for router keys (
redis:logical_name). - REDIS_
PRIMARY - Schema evaluator const for
database:routing. - SQLITE_
ENGINE_ ID - Stable engine slug for router keys (
sqlite:logical_name). - SQLITE_
PRIMARY - Schema evaluator const for
database:routing. - SURREAL_
ENGINE_ ID - Stable engine slug for router keys (
surrealdb:logical_name).
Traits§
- Actor
Context - Request-scoped identity view used by privacy and ownership checks.
- Actor
Factory - Build an
ActorContextfrom opaque JSON at the Valence port boundary. - Batch
Creatable - Marker trait for models participating in batch create codegen.
- Database
Backend - Storage engine behind Valence: CRUD, compiled queries, and graph edges.
- Database
Endpoint Resolver - Resolve a physical connection URL for a logical database name at bootstrap.
- Database
Evaluator - IdHolder
- Model
- Core trait that all generated models implement.
- Policy
Evaluator - Per-rule evaluator referenced from schema metadata (not registered on the builder).
- Query
Compiler - Compiles
QueryCorefor one database dialect. - Schema
Metadata - Compile-time schema metadata access for generated models (trait; struct is
crate::schema::SchemaMetadata). - Secret
Provider - Resolve secret material by key at runtime.
- Side
Effect - Telemetry
Sink - Host-injectable telemetry sink for Valence ORM metrics and events.
- Valence
Factory - Factory for reconstructing
Valenceinstances outside request context. - With
Reference
Functions§
- bootstrap_
embedded_ router - Bootstrap an embedded router from explicit logical names.
- bootstrap_
embedded_ router_ from_ inventory - Bootstrap an embedded router using schema inventory discovery.
- collect_
distinct_ embedded_ surreal_ logical_ names - Distinct embedded Surreal logical names from every linked
valence_schema!plus defaults. - compile_
for_ engine - Compile
corefor the given backend engine id. - connect_
embedded_ at_ path - Open an embedded Surreal database at
path, pin namespace/database, optionally clear stale lock. - connect_
embedded_ from_ env - Open embedded Surreal using neutral env vars.
- database_
from_ env - Read database name from
VALENCE_DB(defaultprod). - dispatch
- Invoke the dispatcher if configured.
- embedded_
engine_ from_ env - Read embedded engine from
VALENCE_EMBEDDED_ENGINE(default RocksDB). - embedded_
path_ from_ env - Read store path from
VALENCE_EMBEDDED_PATH(defaultsurreal/data). - extract_
id_ from_ record - extract_
id_ from_ record_ display - Strip the first
table:prefix from a Surreal thing display string; return the id portion. - extract_
id_ from_ select_ value - Parse a row from
SELECT VALUE id(JSON) into the record id string (notable:prefix). - get_
record_ via_ cache - Point-get with optional read-through cache (raw row, pre-privacy).
- get_
record_ with_ ownership_ bundle_ via_ cache - Unified
Model::getfetch: one backend round trip for row + ownership gate status (when cache cold). - global_
compiler_ registry - Global registry populated from enabled compiler features.
- id_
from_ model - install_
default_ mem_ router - Register the default in-memory backend under
DEFAULT_IN_MEMORY_ROUTER_KEY. - install_
telemetry_ sink - Install the process-wide Valence telemetry sink (tests and host boot).
- invalidate
- Drop a cached row after a write or ownership status change.
- is_
deletion_ dispatcher_ registered - True if
register_deletion_dispatcher(or a test dispatcher) was installed in this process. - json_
value_ to_ fields - Flatten a JSON object into string field pairs for sinks that only store tuples.
- namespace_
from_ env - Read namespace/database from
VALENCE_NS/VALENCE_DB(defaultprod/prod). - queue_
delete_ entity - read_
cache_ enabled - Whether the read-through record cache is active (default on;
VALENCE_READ_CACHE=0disables). - register_
deletion_ dispatcher - Register the process-wide deletion dispatcher (call once from server bootstrap).
- register_
embedded_ logical_ names - Register one embedded Surreal handle under each logical name.
- register_
embedded_ logical_ names_ from_ inventory - Register embedded logical names discovered from schema inventory.
- register_
embedded_ logical_ names_ slices - Register
dbunder every distinct logical name ingroups(deduplicated). - register_
noop_ deletion_ dispatcher_ for_ tests - Install a no-op dispatcher when the slot is still empty (integration tests, harness crates).
- retry_
on_ database_ tx_ conflict - Retry an async Valence operation when
is_retryable_transaction_contentionapplies. - router_
key - Build the compound router key used for registration and resolution.
- schema_
connections_ for_ table - Connections for
table_name, preferring macro-registered schema connections. - shared_
router_ with_ embedded_ logical_ names - Build a router with embedded Surreal registered for each logical name.
- surreal_
record_ id_ for - Build a SurrealDB record id for a table and id string.
- telemetry_
sink - Current sink, or
NoOpSinkwhen none is installed. - try_
log_ event - Emit a structured event from flat field tuples.
- try_
log_ event_ value - Emit a structured event from a JSON payload (instrumentation default).
- try_
record_ counter - Emit a counter when a sink is installed.
- try_
record_ gauge - Emit a gauge when a sink is installed.
- wrap_
backend - Wrap
innerwithInstrumentedBackend.
Type Aliases§
- Iter
Execute Fn - Type-erased
executefor orchestration (row as JSON). - Iter
Should RunFn - Type-erased
should_runfor orchestration (row as JSON). - Result
- SDb
- Embedded Surreal client type.
- Schema
Metadata Struct - Alias used by
valence_schema!codegen. - Surreal
MemBackend - Alias for
SurrealEmbeddedBackend(historical template name).