Expand description
§FeltDB
A durable, embedded state store. Records live under a capability (the part of a key before
the first :, so "orders:o-1" is record o-1 of capability orders). Every write goes
through a durable log; several records can be changed in one atomic transaction; an update can
be made conditional on the version you read; and a transaction can carry an identity so that a
retry after an uncertain outcome is recognized instead of applied twice.
use feltdb::{AtomicMutation, FeltDb, FlowError, PayloadBinding, RecordPrecondition};
use serde_json::{json, Value};
let dir = tempfile::tempdir()?;
let path = dir.path().join("app.db");
let db = FeltDb::open(&path)?;
// Create a record only if it is absent: a second create is refused, and refused in a way a
// caller can branch on.
db.insert_if_absent("orders:o-1", json!({ "status": "pending" }))?;
assert!(matches!(
db.insert_if_absent("orders:o-1", json!({})),
Err(FlowError::PreconditionFailed(_))
));
// Change several records atomically, and name the transaction so a retry is safe. The payload
// hash is yours to compute: FeltDB stores it and compares it for equality.
let ship = |hash: &str| {
db.apply_atomic_transaction_content_addressed(
"ship-o-1",
Some(hash),
None,
&[],
&[
AtomicMutation {
capability: "orders".into(),
key: "orders:o-1".into(),
value: Some(json!({ "status": "shipped" })),
},
AtomicMutation {
capability: "audit".into(),
key: "audit:a-1".into(),
value: Some(json!({ "order": "o-1", "event": "shipped" })),
},
],
None,
)
};
let first = ship("sha256:payload-v1")?;
assert!(!first.duplicate);
// The same request again is recognized as the original, not applied a second time.
let retry = ship("sha256:payload-v1")?;
assert!(retry.duplicate);
assert_eq!(retry.payload_binding, Some(PayloadBinding::Verified));
assert_eq!(retry.commit_revision, first.commit_revision);
// The same id with a different payload is refused, with a typed error. Nothing is written.
assert!(matches!(
ship("sha256:payload-v2"),
Err(FlowError::TransactionIdPayloadMismatch { .. })
));
// Close and reopen: what was acknowledged is there.
drop(db);
let db = FeltDb::open(&path)?;
assert_eq!(db.get::<Value>("orders:o-1")?, Some(json!({ "status": "shipped" })));§What is supported
Only the items in this table are covered by the compatibility policy
(docs/reference/feltdb-rust-api.md in the repository). While the version is 0.x, a breaking
change to them is a minor-version bump and is recorded in the changelog; everything else may
change in any release.
| To | Use |
|---|---|
| open, recover, reopen | FeltDb::open, FeltDb::log_recovery, FeltDb::health |
| read | FeltDb::get, FeltDb::query |
| write unconditionally | FeltDb::insert, FeltDb::update, FeltDb::delete (all three are plain writes: see below) |
| create only if absent | FeltDb::insert_if_absent |
| update only if unchanged | FeltDb::compare_and_set_json → JsonCasResult |
| change several records atomically | FeltDb::apply_atomic_transaction, FeltDb::apply_atomic_transaction_guarded with AtomicMutation and RecordPrecondition → AtomicCommit |
| make a retry safe | FeltDb::apply_atomic_transaction_content_addressed, FeltDb::has_applied_transaction, FeltDb::applied_transaction_payload_hash, PayloadBinding |
| tell failures apart | FlowError and its variants, PreconditionFailure |
| a durable authority for several processes | the authority module (Unix) |
Behavior to know before relying on it.
insert, update and delete are unconditional: insert replaces an existing record, update
of a missing key creates it, and delete of a missing key succeeds. A fenced write
(FeltDb::compare_and_set_json, a RecordPrecondition with expected_version) treats a record
that has never been through one as version 1, and a record’s __version becomes visible in its JSON
after its first fenced write. A transaction refused for a failed precondition writes nothing.
A transaction id committed without a payload hash can be retried (it is a duplicate, with no
PayloadBinding), but retrying it with a hash is refused, because there is nothing to verify against.
§Durability
An acknowledged write survives the process being killed. Whether it survives the machine losing
power depends on the operating system and drive honouring a flush, and is not established.
A log ending in an incomplete append is recovered by discarding that append, which was never
acknowledged: FeltDb::log_recovery says so. A corrupt log, or one in a format this build does
not understand, refuses to open and is left as found.
§Stability tiers
- Supported: the table above.
- Experimental:
agent_state,agent_transition_contract, the deterministic-contract adapters,semantic_decisionandsemantic_query. Public so they can be used, but they may change shape before they are stabilized. - Not yet classified: the other public modules. They are public today and carry no promise; each is listed with the decision still needed in the repository’s Rust API audit.
- Internals: implementation, fault-injection and diagnostic modules are private unless the
unstable-internalsfeature is enabled, and nothing behind that feature is covered by any promise.
FlowError is #[non_exhaustive]: match on its variants, always with a catch-all arm, and never
on message text.
Re-exports§
pub use admission::ProductionRetryPolicy;pub use admission::RejectionReason;pub use admission::SubmissionOutcome;pub use analytics::AutoTuner;pub use analytics::IndexAnalytics;pub use analytics::IndexMetrics;pub use analytics::PerformanceReport;pub use analytics::QueryTrace;pub use analytics::TuningRecommendation;pub use causal_dependency_barrier::ApplyResult;pub use causal_dependency_barrier::CausalDependencyBarrier;pub use causal_dependency_barrier::OperationState;pub use causal_dependency_barrier::PendingOperation;pub use causal_dependency_barrier::ReceiveResult;pub use causal_dependency_barrier::StateCounters;pub use consistency_contract::CommutativeVerificationResult;pub use consistency_contract::ConsensusEnforcementResult;pub use consistency_contract::ConsensusRequirementChecker;pub use consistency_contract::ConsistencyContractEnforcer;pub use consistency_contract::DeterministicMergeVerificationResult;pub use consistency_contract::NoDowngradeVerificationResult;pub use consistency_contract::OperationApplication;pub use convergence::CausalHistory;pub use convergence::ConflictResolution;pub use convergence::ConflictResolutionStrategy;pub use convergence::MergeResult;pub use convergence::StateVersion;pub use convergence::VectorClock;pub use crash_atomic_boundary::CrashAtomicExecutor;pub use crash_atomic_boundary::CrashBoundaryPoint;pub use crash_atomic_boundary::CrashRecoveryState;pub use crash_atomic_boundary::InvariantCheckResult;pub use crash_atomic_boundary::RecoveryDecision;pub use distributed_indexing::ConsistencyLevel;pub use distributed_indexing::ConsistencyProtocol;pub use distributed_indexing::DistributedIndexManager;pub use distributed_indexing::DistributedSyncStatus;pub use distributed_indexing::IndexOperation;pub use distributed_indexing::IndexReplicationState;pub use distributed_indexing::IndexSyncMessage;pub use distributed_indexing::IndexVectorClock;pub use distributed_indexing::RemoteIndexMetadata;pub use distributed_indexing::RemoteIndexState;pub use distributed_indexing::ReplicationStatus;pub use distributed_indexing::VersionConflict;pub use distributed_transactions::DistributedTransactionExecutor;pub use distributed_transactions::EnvelopeId;pub use distributed_transactions::ReplicaState;pub use distributed_transactions::ReplicationMessage;pub use distributed_transactions::TransactionEnvelope;pub use equality_index::EqualityIndex;pub use equality_index::EqualityIndexStats;pub use equality_index::IndexKey;pub use indexing::IndexConfig;pub use indexing::IndexManager;pub use indexing::IndexStats;pub use indexing::IndexType;pub use multi_node_convergence::ConvergenceAggregation;pub use multi_node_convergence::ConvergenceResult;pub use multi_node_convergence::MultiNodeConvergenceSimulator;pub use multi_node_convergence::NodeExecutionResult;pub use operation_algebra::ConflictType;pub use operation_algebra::ConvergenceSemantic;pub use operation_algebra::OperationAlgebra;pub use operation_algebra::OperationAlgebraRegistry;pub use operation_log::MemoryOperationLog;pub use operation_log::OperationLogEntry;pub use partition_reconciliation::DeterminismCheckResult;pub use partition_reconciliation::PartitionDeterminismChecker;pub use partition_reconciliation::PartitionTrace;pub use partition_reconciliation::PartitionedReplica;pub use partition_reconciliation::ReconciliationResult;pub use partition_reconciliation::ReplicaPartition;pub use semantic_decision::configured_decision_runtime;pub use semantic_decision::decide_record;pub use semantic_decision::decision_cache_key;pub use semantic_decision::deterministic_request_key;pub use semantic_decision::reuse_record_judgment;pub use semantic_decision::execute_decision_batch;pub use semantic_decision::execute_decision_transport;pub use semantic_decision::execute_inline_decision_transport;pub use semantic_decision::jev;pub use semantic_decision::run_choice_diagnostics;pub use semantic_decision::run_decision_benchmark;pub use semantic_decision::validate_decision_definition;pub use semantic_decision::validate_decision_result;pub use semantic_decision::BinaryDecisionResult;pub use semantic_decision::ChoiceDecisionResult;pub use semantic_decision::ChoiceDiagnosticsReport;pub use semantic_decision::ChoiceExpansionObservation;pub use semantic_decision::ChoicePermutationObservation;pub use semantic_decision::DecisionAuthorizationConfig;pub use semantic_decision::DecisionAuthorizationDecision;pub use semantic_decision::DecisionAuthorizationGate;pub use semantic_decision::DecisionBatch;pub use semantic_decision::DecisionBatchDecision;pub use semantic_decision::DecisionBatchEvaluation;pub use semantic_decision::DecisionBenchmarkCase;pub use semantic_decision::DecisionBenchmarkReport;pub use semantic_decision::DecisionContextPacket;pub use semantic_decision::DecisionDefinition;pub use semantic_decision::DecisionError;pub use semantic_decision::DecisionEvaluation;pub use semantic_decision::DecisionEvidence;pub use semantic_decision::DecisionEvidenceField;pub use semantic_decision::DecisionExecutionMethod;pub use semantic_decision::DecisionJudgmentRecord;pub use semantic_decision::DecisionKind;pub use semantic_decision::DecisionOptions;pub use semantic_decision::DecisionPrincipal;pub use semantic_decision::DecisionProvenance;pub use semantic_decision::DecisionRecordRef;pub use semantic_decision::DecisionRequest;pub use semantic_decision::DecisionResult;pub use semantic_decision::DecisionRuntime;pub use semantic_decision::DecisionRuntimeCapabilities;pub use semantic_decision::DecisionRuntimeMetadata;pub use semantic_decision::DecisionStateReference;pub use semantic_decision::DecisionStatus;pub use semantic_decision::DecisionTransportAuthorization;pub use semantic_decision::DecisionTransportExecutionRequest;pub use semantic_decision::DecisionTransportExecutionResponse;pub use semantic_decision::DecisionTransportRuntime;pub use semantic_decision::DeterministicDecisionRuntime;pub use semantic_decision::ScoreDecisionResult;pub use semantic_decision::WeightedOption;pub use semantic_decision::DEFAULT_DECISION_COLLECTION;pub use semantic_query::compose_semantic_page;pub use semantic_query::semantic_clause_hash;pub use semantic_query::semantic_definition_hash;pub use semantic_query::validate_semantic_clause;pub use semantic_query::SemanticAnnotation;pub use semantic_query::SemanticCandidate;pub use semantic_query::SemanticOrderDirection;pub use semantic_query::SemanticPage;pub use semantic_query::SemanticQueryClause;pub use semantic_query::SemanticQueryError;pub use semantic_query::SemanticQueryFilter;pub use semantic_query::SemanticQueryMode;pub use semantic_query::SemanticQueryOrder;pub use semantic_query::SemanticStageSummary;pub use semantic_query::SemanticUnevaluated;pub use semantic_query::SemanticUnevaluatedReason;pub use semantic_query::MAX_SEMANTIC_CANDIDATES;pub use sharding::HotspotAlert;pub use sharding::RebalanceOperation;pub use sharding::ShardDistributionSummary;pub use sharding::ShardId;pub use sharding::ShardKey;pub use sharding::ShardManager;pub use sharding::ShardMetrics;pub use sharding::ShardRange;pub use sharding::ShardingStrategy;pub use state_conflict_contract::classify_states;pub use state_conflict_contract::StateConflictInput;pub use state_conflict_contract::StateConflictOutput;pub use state_conflict_contract::STATE_CONFLICT_CONTRACT_ID;pub use state_conflict_contract::STATE_CONFLICT_CONTRACT_VERSION;pub use state_diff_contract::diff_states;pub use state_diff_contract::StateDiffInput;pub use state_diff_contract::StateDiffOutput;pub use state_diff_contract::STATE_DIFF_CONTRACT_ID;pub use state_diff_contract::STATE_DIFF_CONTRACT_VERSION;pub use state_facade::FeltDBStateSystem;pub use state_hash::CanonicalState;pub use state_hash::StateHash;pub use state_model::apply_reconciliation_plan;pub use state_model::path_relation;pub use state_model::paths_overlap;pub use state_model::reconcile;pub use state_model::resolve_path;pub use state_model::ChangeKind;pub use state_model::ConflictClass;pub use state_model::ConflictClassification;pub use state_model::GarbageCollectionError;pub use state_model::GarbageCollectionReport;pub use state_model::MaterializationError;pub use state_model::MaterializationProjection;pub use state_model::PathComponent;pub use state_model::PathConflict;pub use state_model::PathRelation;pub use state_model::ReconciliationPlan;pub use state_model::RefError;pub use state_model::Relationship;pub use state_model::SemanticChange;pub use state_model::SemanticDiff;pub use state_model::StateId;pub use state_model::StateObject;pub use state_model::StateReconciliationResult;pub use state_model::StateRef;pub use state_model::StateRevision;pub use state_model::StateStore;pub use state_model::StateTopology;pub use state_model::STATE_MODEL_VERSION;pub use state_transition_store::MemoryStateTransitionStore;pub use state_transition_store::StateTransitionRecord;pub use state_trigger::StateTrigger;pub use state_trigger::StateTriggerChangeKind;pub use state_trigger::StateTriggerError;pub use state_trigger::StateTriggerPredicate;pub use state_trigger::StateTriggerStore;pub use state_trigger::TriggeredWorkload;pub use submission::SubmissionManager;pub use submission::SubmissionMetrics;pub use transaction_api::TransactionManager;pub use transaction_api::TxError;pub use transaction_api::TxResult;pub use transactions::CommitId;pub use transactions::CommitValidator;pub use transactions::ConsistencyContract;pub use transactions::OperationCommand;pub use transactions::OperationId;pub use transactions::StateDependency;pub use transactions::StateTransition;pub use transactions::TransactionExecutor;pub use transactions::TransitionResult;pub use trigger_contract::canonical_input_bytes;pub use trigger_contract::canonical_output_bytes;pub use trigger_contract::evaluate_canonical;pub use trigger_contract::evaluate_trigger;pub use trigger_contract::ContractChange;pub use trigger_contract::ContractChangeKind;pub use trigger_contract::ContractErrorBody;pub use trigger_contract::ContractErrorCode;pub use trigger_contract::ContractPredicate;pub use trigger_contract::ContractRuntime;pub use trigger_contract::ContractTrigger;pub use trigger_contract::MatchOutcome;pub use trigger_contract::MatchReason;pub use trigger_contract::TriggerMatchInput;pub use trigger_contract::TriggerMatchOutput;pub use trigger_contract::TRIGGER_MATCH_CONTRACT_ID;pub use trigger_contract::TRIGGER_MATCH_CONTRACT_VERSION;pub use versioned_object_substrate::DurableObjectStore;pub use versioned_object_substrate::DurableRef;pub use versioned_object_substrate::LocalObjectStore;pub use versioned_object_substrate::Reachability;pub use versioned_object_substrate::S3CompatibleBucket;pub use versioned_object_substrate::S3CompatibleObjectStore;pub use versioned_object_substrate::SubstrateError;pub use versioned_object_substrate::VersionedObjectSubstrate;
Modules§
- admission
- agent_
state - Durable agent state: the production implementation of
crate::agent_transition_contract. - agent_
transition_ contract - The deterministic contract behind durable agent-state transitions.
- analytics
- application
- application_
runtime - authority
- One logical durable authority across embedded and local multi-process use.
- authority_
failover - Authority Failover Protocol
- authorization
- Canonical resource authorization and portable signed grants.
- capabilities
- causal_
dependency_ barrier - consistency_
contract - convergence
- crash_
atomic_ boundary - distributed_
indexing - distributed_
transactions - durability_
guarantees - durable_
dedup_ set - durable_
operation_ log - durable_
sync - equality_
index - A deterministic equality index over authoritative collection state.
- indexing
- lifecycle_
store - Lifecycle state as FeltDB records.
- metrics
- multi_
node_ convergence - multi_
operation_ transaction - Multi-Operation Atomicity (Production Gate P1)
- observability
- operation_
algebra - operation_
log - partition_
reconciliation - policy_
evaluation - Runtime policy enforcement for FlowSpec policies.
- production_
api - query_
performance - replica_
acknowledgements - Durable replica acknowledgements.
- replica_
membership - Durable replica membership.
- replication_
manager - replication_
protocol - semantic_
decision - semantic_
query - Semantic query composition over a bounded candidate page.
- sharding
- state_
conflict_ contract - The deterministic contract behind FeltDB’s conflict classification.
- state_
contract - Query Execution Contract
- state_
diff_ contract - The deterministic contract behind FeltDB’s semantic state diff.
- state_
facade - Canonical FeltDB State Subsystem Public API Facade
- state_
hash - state_
model - Proven FeltDB State Model
- state_
transition_ store - state_
trigger - Durable evaluation of committed state changes into workloads.
- submission
- sync_
contract - FeltDB Sync v1: transport-neutral operation synchronization semantics.
- tcp_
transport - transaction_
api - transactions
- trigger_
contract - The deterministic contract behind state-trigger matching.
- versioned_
object_ substrate - worker_
mesh - Worker and mesh semantics. Compute is replaceable; durable workload state is authority.
- workload
- Durable workload authority. Workers execute; this state machine decides.
Structs§
- Acquisition
Deduplicator - In-flight acquisition tracking for deduplication
- Acquisition
Metadata - Metadata tracking how content was acquired from the distributed fabric This metadata is NOT canonical application state - it’s purely informational
- Acquisition
Result - Result of content acquisition attempt
- Atomic
Commit - Atomic
Mutation - Atomic
Precondition - Backup
Problem - Why a backup artifact was rejected.
- Backup
Verification - What a backup artifact contains, established by reading it.
- Capability
- Capability
Access Model - Access model for capability security
- Capability
Checkpoint - Checkpoint for capability progress tracking
- Capability
Context - Context passed to capability operations
- Capability
Execution Context - Context for executing a capability (local or remote)
- Capability
Execution Result - Result of a capability execution with full provenance
- Capability
Id - Unique capability identifier
- Capability
Location Registry - Capability location registry - tracks where capabilities are available
- Capability
Metadata - Capability metadata and configuration
- Capability
Operation Result - Result of processing an operation through a capability
- Capability
Query - Query structure for capability queries
- Capability
Query Result - Result of a capability query
- Capability
Ref - Reference to a capability with namespace and version Canonical form: flow://capability/namespace:name@version
- Capability
Registry - Capability registry - tracks all capabilities
- Capability
Requirements - Requirements for a capability to execute
- Capability
Resolver - Resolver for capabilities - routes to appropriate provider
- Capability
Router - State-aware capability routing engine
- Change
Event - An event representing a change to the database (insert or update of a record).
- Change
Log - A change log that tracks pending operations for synchronization
- Checkpoint
Data - Data structure for checkpoints
- Compaction
Policy - When a compaction should actually rewrite the durable log.
- Conflict
- Represents a conflict between local and remote operations
- Conflict
Detector - Conflict detector for identifying conflicts between operations
- Content
Acquisition Manager - Manager for acquiring content from distributed peers
- Content
Addressable Store - A content addressable store that tracks where content lives
- Content
Identity - Content identity based on hash
- Content
Range - A range of content available on a peer
- Content
Request - Request for content from a remote peer
- Content
Response - Response containing acquired content
- Cron
Schedule - A cron schedule definition
- Cron
Scheduler - Cron scheduler - manages all cron schedules
- Database
Health - What this database knows about itself, as facts rather than labels.
- Database
Snapshot - Derived
State Provenance - Provenance information for derived state
- Derived
Value - Wrapper for derived state to ensure it’s properly marked
- Distributed
Capability Advertisement - Advertises a capability at a specific peer with its requirements
- Distributed
Reference Resolver - Reference resolution with fallback to peer acquisition
- Durability
Failure - A write that did not become durable, and what is known about its outcome.
- Execution
- A durable execution record
- Execution
Claim - A claim on an execution
- Execution
Claimer - Execution claim tracker for single-owner semantics
- Execution
Queue - Execution queue - tracks all executions
- Execution
Ref - Reference to an execution result with provenance
- Execution
Result Publisher - Result publication tracker
- FeltDb
- File
Storage - File-based storage backend for native file operations
- FlowRef
- A stable reference primitive for distributed FeltDB fabric
- Format
Incompatibility - Why a durable database cannot be opened, and what to do about it.
- Live
Capability Subscription - A capability-scoped subscription to a live query that streams updates for records within a specific capability.
- Live
Query Subscription - A subscription to a live query that streams updates whenever matching records change.
- LogCorruption
- Where durable corruption was found, and what is wrong with it.
- Materialization
Handler - Handler for materializing acquired content
- Memory
Storage - In-memory storage backend for testing
- Operation
- A durable operation that can be appended to the log
- Peer
Advertisement - Advertisement of what a peer provides
- PeerId
- Peer identifier in the distributed fabric
- Peer
Registry - A registry of peers in the distributed fabric
- Peer
State - State of a peer’s synchronization
- Peer
State Version - State version tracking for a peer
- Projection
Distribution - Projection distribution - tracks where projections are hosted
- Read
Basis - A read set and what the authority held for it at one moment.
- Read
Condition - Read
Predicate - Read
Record - ReadSet
- State a decision was read from: records by identity, and equality
predicates over a collection (every record of
collectionwhose fields equal these values, including records that do not exist yet). - Record
Precondition - What must be true of one record for a transaction to commit.
- Resolution
Metadata - Metadata about a resolved reference
- Resolution
Result - Result of content resolution with metadata
- Retry
Policy - Retry policy for executions
- Selected
Page - One bounded page and what it cost.
- State
Requirement - Represents a required state for a capability to execute
- Stored
Row - Sync
State - Overall sync state and metrics
- Transaction
Attribution - Who committed a transaction, and what it touched.
- Trigger
- A trigger that maps operations to capability executions
- Trigger
Filter - Filter condition for triggers
- Trigger
Registry - Trigger registry - manages all triggers
- Version
History - The history in which a database issues record versions.
- Workflow
Cron Trigger - Workflow cron trigger - creates workflow instances from cron schedule
- Workflow
Graph - Workflow graph definition - durable DAG structure
- Workflow
Instance - Runtime state for a workflow instance
- Workflow
Integration - Workflow integration manager
- Workflow
Node - Workflow graph node - represents a capability to execute
- Workflow
Operation Entry - An emitted workflow operation with metadata
- Workflow
Provenance - Workflow provenance - tracks why an object exists through workflow execution
- Workflow
Ref - Reference to a workflow - addressable object in the fabric
- Workflow
Runtime - Workflow runtime - manages workflow execution and state
- Workflow
Step Ref - Reference to a step within a workflow
- Workflow
Trigger - Workflow trigger - creates workflow instances from events
Enums§
- Acquisition
Policy - Policy for acquiring content from the distributed fabric
- Blocked
Reason - Reason a workflow step is blocked
- Capability
Lifecycle State - Lifecycle states for a capability
- Capability
Role - The roles a capability can fulfill
- Compaction
Outcome - What a policy-driven compaction did.
- Content
Transfer Error - Error types for content acquisition
- Durability
Failure Kind - Why a write did not become durable.
- Durability
Mode - How far a single-record write is pushed before it returns.
- Durable
Format - What format a durable database is in.
- Execution
Status - Execution status enumeration
- Flow
Error - Why an operation failed.
- Format
Compatibility - The result of examining a durable database without opening it.
- History
Origin - How a database history began (
docs/reference/version-tokens.md). - Json
CasResult - LogRecovery
- What replaying the durable log had to do to succeed.
- Mutation
Order - Mutation ordering specification for FeltDB This defines the order in which mutation side effects occur
- Operation
Source - Source of an operation - tracks where it originated
- Operation
Type - Types of mutations that become durable operations
- Page
Access - How
FeltDb::select_pagefound the rows of a page. - Payload
Binding - What a duplicate transaction id was checked against.
- Precondition
Failure - Which predicate failed, and what the authority actually holds.
- Read
Layout - Where a read set’s logical collections and ids live in storage.
- Route
Decision - Route decision for capability execution
- Storage
Health - What is actually known about this database’s durable storage.
- Sync
Message - Sync protocol messages for peer-to-peer synchronization
- Transaction
Status - Workflow
Operation - Workflow lifecycle event - becomes a durable operation
- Workflow
State - State of a workflow
- Workflow
Step State - State of a workflow step in the durable execution model
- Write
Availability - Whether a database can accept writes, as this process knows it.
Constants§
- BACKUP_
VERSION - The backup artifact format this build writes and understands.
- DEFAULT_
MUTATION_ ORDER - The default mutation ordering for FeltDB We choose PersistFirst to ensure durability guarantees
- DURABLE_
FORMAT_ VERSION - The durable format this build writes and understands.
- READ_
BASIS_ PREFIX - Token prefix for read bases this authority issues.
- READ_
SET_ LIMIT - Largest number of records plus predicates one read set may name.
- STANDALONE_
OPERATION_ WINDOW - How many of its newest operations a standalone store (one no peer has ever
acknowledged) keeps in its operation log. See
ChangeLog::prune_standaloneand docs/reference/storage-growth.md. - VERSION_
TOKEN_ PREFIX - The prefix of a version token:
fv1:<history id>:<version>.
Traits§
- Derived
State - Marker trait for values that represent derived state This should be implemented by capability-generated state
- Flow
Capability - Trait for implementing capabilities This is the core contract for extending FeltDB with specialized behavior
- Reactive
Collection Integration - Reactive collection integration This trait allows acquired content to participate in reactive collections
- Reference
Resolver - Trait for resolving FlowRefs to actual objects
- Storage
- Trait defining the storage abstraction for FeltDB.
Functions§
- inspect_
durable_ format - Read the log, separating a torn tail from real corruption.
- open
- parse_
version_ token - Split a version token into its history id and version.
Nonewhen it is not one: a token isfv1:<32 hex digits>:<decimal version>, nothing else. - verify_
backup - Read and check a backup artifact without opening it as a database.