Runlane
ReferenceContract values

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

EnumValueMeaning
StorageDurability.ProcessprocessState lasts for the owning process
StorageDurability.DurabledurableA successful commit crosses the provider's durable boundary
StorageClockAuthority.ClientclientThe provider process samples transaction time
StorageClockAuthority.ServerSampledserver_sampledProvider time is sampled near commit without a post-lock guarantee
StorageClockAuthority.TransactionAuthoritativetransaction_authoritativeTime is sampled after the point-read set is sealed or locked
StorageIndexConsistency.StrongstrongA committed index change is immediately visible
StorageIndexConsistency.EventualeventualQueries may omit new entries or return stale candidates briefly
StorageSortDirection.AscascLowest encoded sort and key first
StorageSortDirection.DescdescHighest encoded sort and key first

StorageDriverProfile.exclusiveCandidates is optional. true guarantees exclusive transaction candidate selection; omission preserves advisory selection.

Optional transaction mechanics

Enum memberValueMeaning
StorageCandidateMode.AdvisoryadvisoryDiscover references without exclusive ownership; the default
StorageCandidateMode.ExclusiveexclusiveHold returned candidates until the attempt ends and skip busy candidates
StorageStreamName.ObservationsobservationsAppend 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

FieldWhat it bounds
maxGetRecordsRecords in one point-read call
maxQueryRecordsResults in one index page
maxRecordBytesOne stored record
maxTransactionRecordsComplete read and mutation key set
maxTransactionBytesAggregate 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 memberValue
StorageCollectionName.IdempotencyOwnersidempotency_owners
StorageCollectionName.MaintenanceLeasesmaintenance_leases
StorageCollectionName.ObservationCheckpointsobservation_checkpoints
StorageCollectionName.ObservationHeadsobservation_heads
StorageCollectionName.ObservationRecordsobservation_records
StorageCollectionName.OutboxMessagesoutbox_messages
StorageCollectionName.QueueCapacityCursorsqueue_capacity_cursors
StorageCollectionName.QueueCapacitySlotsqueue_capacity_slots
StorageCollectionName.RunEventIdOwnersrun_event_id_owners
StorageCollectionName.RunCompletionWaitPresencerun_completion_wait_presence
StorageCollectionName.RunEventsrun_events
StorageCollectionName.RunStepTokenOwnersrun_step_token_owners
StorageCollectionName.RunStepsrun_steps
StorageCollectionName.RunTombstonesrun_tombstones
StorageCollectionName.Runsruns
StorageCollectionName.ScheduleOccurrencesschedule_occurrences
StorageCollectionName.SingletonOwnerssingleton_owners
StorageCollectionName.WaitTokenIdempotencyOwnerswait_token_idempotency_owners
StorageCollectionName.WaitTokenRunLinkswait_token_run_links
StorageCollectionName.WaitTokenswait_tokens

Named indexes

storageIndexCollections is the canonical index-to-collection mapping.

Enum memberValue
StorageIndexName.IdempotencyRetentionidempotency_retention
StorageIndexName.ObservationsByPositionobservations_by_position
StorageIndexName.OutboxAvailableoutbox_available
StorageIndexName.OutboxByRunoutbox_by_run
StorageIndexName.QueueCapacitySlotsByExpiryqueue_capacity_slots_by_expiry
StorageIndexName.RunEventsBySequencerun_events_by_sequence
StorageIndexName.RunTombstonesByTombstonedAtrun_tombstones_by_tombstoned_at
StorageIndexName.RunsCancellationFinalizationruns_cancellation_finalization
StorageIndexName.RunsDeliveryRecoveryruns_delivery_recovery
StorageIndexName.RunsRunnableByQueueruns_runnable_by_queue
StorageIndexName.RunsTimeoutFinalizationruns_timeout_finalization
StorageIndexName.RunsWaitingForCompletionruns_waiting_for_completion
StorageIndexName.RunsWaitingForSignalruns_waiting_for_signal
StorageIndexName.RunStepsByCompletionrun_steps_by_completion
StorageIndexName.TerminalRunsByFinishedAtterminal_runs_by_finished_at
StorageIndexName.TerminalWaitTokensByResolvedAtterminal_wait_tokens_by_resolved_at
StorageIndexName.WaitTokenRunLinksByRunwait_token_run_links_by_run
StorageIndexName.WaitTokenRunLinksByTokenwait_token_run_links_by_wait_token
StorageIndexName.WaitTokensByCreatedAtwait_tokens_by_created_at
StorageIndexName.WaitTokensByStatuswait_tokens_by_status
StorageIndexName.WaitTokensNeedingResumewait_tokens_needing_resume
StorageIndexName.WaitTokensPendingByTimeoutwait_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 memberValueMeaning
RunStorageVisibility.VisiblevisibleThe run participates in operational indexes
RunStorageVisibility.TombstonedtombstonedThe run is hidden while child cleanup continues
QueueCapacitySlotStatus.AvailableavailableThe slot can be acquired
QueueCapacitySlotStatus.OwnedownedThe slot has a fenced owner and expiry
QueueCapacitySlotOwnershipPhase.DispatchdispatchA queued dispatch reservation owns the slot
QueueCapacitySlotOwnershipPhase.LeaseleaseAn active execution lease owns the slot
WaitTokenStatus.PendingpendingThe token can accept one terminal transition
WaitTokenStatus.CompletedcompletedOutput and completion actor won the terminal transition
WaitTokenStatus.TimedOuttimed_outThe deadline won and no output exists
WaitTokenRunLinkStatus.ConnectedconnectedA retained run references the token
WaitTokenRunLinkStatus.WaitingwaitingA 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.

On this page