Storage values
Look up stable storage profiles, collections, indexes, states, and limits.
Use the exported enum or contractDefaults value in code. Do not repeat these strings as an independently editable mapping.
Provider profiles
| Enum | Value | Meaning |
|---|---|---|
StorageDurability.Process | process | State lasts for the owning process |
StorageDurability.Durable | durable | A successful commit crosses the provider's durable boundary |
StorageClockAuthority.Client | client | The provider process samples transaction time |
StorageClockAuthority.ServerSampled | server_sampled | Provider time is sampled near commit without a post-lock guarantee |
StorageClockAuthority.TransactionAuthoritative | transaction_authoritative | Time is sampled after the point-read set is sealed or locked |
StorageIndexConsistency.Strong | strong | A committed index change is immediately visible |
StorageIndexConsistency.Eventual | eventual | Queries may omit new entries or return stale candidates briefly |
StorageSortDirection.Asc | asc | Lowest encoded sort and key first |
StorageSortDirection.Desc | desc | Highest encoded sort and key first |
StorageDriverProfile.exclusiveCandidates is optional. true guarantees exclusive transaction candidate selection; omission preserves advisory selection.
Optional transaction mechanics
| Enum member | Value | Meaning |
|---|---|---|
StorageCandidateMode.Advisory | advisory | Discover references without exclusive ownership; the default |
StorageCandidateMode.Exclusive | exclusive | Hold returned candidates until the attempt ends and skip busy candidates |
StorageStreamName.Observations | observations | Append to the environment's ordered observation stream |
StorageTransaction.append is optional. Its AppendRecordsCommand contains stream, partition, and a non-empty array of opaque JSON object values. Storage assigns their positions atomically at commit. storageStreamLayouts owns the head, record, field, and index mapping. Existing providers may omit append; core retains its point-write implementation.
Limit fields
| Field | What it bounds |
|---|---|
maxGetRecords | Records in one point-read call |
maxQueryRecords | Results in one index page |
maxRecordBytes | One stored record |
maxTransactionRecords | Complete read and mutation key set |
maxTransactionBytes | Aggregate bytes in one transaction |
Every limit is a positive safe integer. maxTransactionBytes must be at least one record. It cannot be larger than the bytes reachable through the record-count and per-record limits.
An ordered append counts its head and every appended record in addition to point reads and mutations. Byte accounting reserves the maximum unsigned 64-bit position width before allocation.
The Local raw driver defaults to 100 point reads, 100 query results, 100 transaction records, 409,600 bytes per record, and 4,194,304 bytes per transaction.
Logical collections
| Enum member | Value |
|---|---|
StorageCollectionName.IdempotencyOwners | idempotency_owners |
StorageCollectionName.MaintenanceLeases | maintenance_leases |
StorageCollectionName.ObservationCheckpoints | observation_checkpoints |
StorageCollectionName.ObservationHeads | observation_heads |
StorageCollectionName.ObservationRecords | observation_records |
StorageCollectionName.OutboxMessages | outbox_messages |
StorageCollectionName.QueueCapacityCursors | queue_capacity_cursors |
StorageCollectionName.QueueCapacitySlots | queue_capacity_slots |
StorageCollectionName.RunEventIdOwners | run_event_id_owners |
StorageCollectionName.RunCompletionWaitPresence | run_completion_wait_presence |
StorageCollectionName.RunEvents | run_events |
StorageCollectionName.RunStepTokenOwners | run_step_token_owners |
StorageCollectionName.RunSteps | run_steps |
StorageCollectionName.RunTombstones | run_tombstones |
StorageCollectionName.Runs | runs |
StorageCollectionName.ScheduleOccurrences | schedule_occurrences |
StorageCollectionName.SingletonOwners | singleton_owners |
StorageCollectionName.WaitTokenIdempotencyOwners | wait_token_idempotency_owners |
StorageCollectionName.WaitTokenRunLinks | wait_token_run_links |
StorageCollectionName.WaitTokens | wait_tokens |
Named indexes
storageIndexCollections is the canonical index-to-collection mapping.
| Enum member | Value |
|---|---|
StorageIndexName.IdempotencyRetention | idempotency_retention |
StorageIndexName.ObservationsByPosition | observations_by_position |
StorageIndexName.OutboxAvailable | outbox_available |
StorageIndexName.OutboxByRun | outbox_by_run |
StorageIndexName.QueueCapacitySlotsByExpiry | queue_capacity_slots_by_expiry |
StorageIndexName.RunEventsBySequence | run_events_by_sequence |
StorageIndexName.RunTombstonesByTombstonedAt | run_tombstones_by_tombstoned_at |
StorageIndexName.RunsCancellationFinalization | runs_cancellation_finalization |
StorageIndexName.RunsDeliveryRecovery | runs_delivery_recovery |
StorageIndexName.RunsRunnableByQueue | runs_runnable_by_queue |
StorageIndexName.RunsTimeoutFinalization | runs_timeout_finalization |
StorageIndexName.RunsWaitingForCompletion | runs_waiting_for_completion |
StorageIndexName.RunsWaitingForSignal | runs_waiting_for_signal |
StorageIndexName.RunStepsByCompletion | run_steps_by_completion |
StorageIndexName.TerminalRunsByFinishedAt | terminal_runs_by_finished_at |
StorageIndexName.TerminalWaitTokensByResolvedAt | terminal_wait_tokens_by_resolved_at |
StorageIndexName.WaitTokenRunLinksByRun | wait_token_run_links_by_run |
StorageIndexName.WaitTokenRunLinksByToken | wait_token_run_links_by_wait_token |
StorageIndexName.WaitTokensByCreatedAt | wait_tokens_by_created_at |
StorageIndexName.WaitTokensByStatus | wait_tokens_by_status |
StorageIndexName.WaitTokensNeedingResume | wait_tokens_needing_resume |
StorageIndexName.WaitTokensPendingByTimeout | wait_tokens_pending_by_timeout |
Queue-capacity cursor identity includes the active concurrency limit. Queue versions can advance on their own while sharing capacity slots.
Logical record states
| Enum member | Value | Meaning |
|---|---|---|
RunStorageVisibility.Visible | visible | The run participates in operational indexes |
RunStorageVisibility.Tombstoned | tombstoned | The run is hidden while child cleanup continues |
QueueCapacitySlotStatus.Available | available | The slot can be acquired |
QueueCapacitySlotStatus.Owned | owned | The slot has a fenced owner and expiry |
QueueCapacitySlotOwnershipPhase.Dispatch | dispatch | A queued dispatch reservation owns the slot |
QueueCapacitySlotOwnershipPhase.Lease | lease | An active execution lease owns the slot |
WaitTokenStatus.Pending | pending | The token can accept one terminal transition |
WaitTokenStatus.Completed | completed | Output and completion actor won the terminal transition |
WaitTokenStatus.TimedOut | timed_out | The deadline won and no output exists |
WaitTokenRunLinkStatus.Connected | connected | A retained run references the token |
WaitTokenRunLinkStatus.Waiting | waiting | A retained run is released on the token |
Logical documents use schemaVersion: 1. Any other version fails to decode. There is no pre-v1 compatibility reader.
Ordered timestamps are fixed-width UTC strings with milliseconds. Ordered integers are fixed-width unsigned 64-bit decimals.
See build a storage provider for the short guide and storage provider contract details for the complete behavior behind these values.