Table of Contents

Options Reference

This page is part of the documentation for Orleans.Lattice 9.9.0 (release line 9.9), built 2026-10-04. It is also published as markdown, with every table and list, at options-reference.md, and llms.txt lists every page.

Part of Configuration.

Option Type Default Safe to change after data exists?
ActivationReadyTimeout TimeSpan 15 seconds Yes (on next seed)
AdmissionAdvisoryBytes long? null (advisory dry-run off) Yes
AdmissionAdvisoryLiveKeys long? null (advisory dry-run off) Yes
AtomicActionRetention TimeSpan 48 hours Yes (global; read from the default options)
AtomicWriteRetention TimeSpan 48 hours Yes
AutoSplitEnabled bool true Yes
AutoSplitMinTreeAge TimeSpan 60 seconds Yes
BackgroundDrainLeavesPerPass int 64 Yes
BackgroundDrainMaxDuration TimeSpan 10 seconds Yes
CacheTtl TimeSpan TimeSpan.Zero (refresh on every cross-silo read) Yes
CompactionLeafBatchSize int 64 Yes
CompactionShardTickInterval TimeSpan 500 milliseconds Yes
CompactionTriggerCooldown TimeSpan 5 minutes Yes
ConsolidationDrainBatchSize int 1024 Yes
ConsolidationDrainLeavesPerPass int 16 Yes
CursorIdleTtl TimeSpan 48 hours Yes
DefaultLockLeaseDuration TimeSpan 30 seconds Yes (global; read from the default options)
DiagnosticsCacheTtl TimeSpan 5 seconds Yes
DigestCoalescingWindowMs int 5 (measured sweet spot) Yes (on each leaf's next activation)
DigestPublishTimeout TimeSpan 15 seconds Yes (on each node's next activation)
DirtyLeafFlushIntervalMs int 50 (ms) Yes
EventStreamProviderName string "Default" Yes (on next publish)
HotShardConsolidationSkewRatio double 1.15 Yes
HotShardMinShardEntries int 1024 Yes
HotShardMinSkewRatio double 1.5 Yes
HotShardOpsPerSecondThreshold int 200 Yes
HotShardSampleInterval TimeSpan 30 seconds Yes
HotShardSplitCooldown TimeSpan 2 minutes Yes
KeysPageSize int 512 Yes
LeafAccessModelFlushIntervalMs int 30000 (ms) Yes (on next activation)
LeafCachePreWarmCount int 8 (enabled) Yes (on next activation)
LeafHydrationResidentBytes long 1 MiB Yes (on next activation)
LeafPartialHydrationEnabled bool true Yes (on next activation)
LeafProjectionRetention TimeSpan 7 days Yes
LeafRetirementRetryDeadline TimeSpan 2 seconds Yes
LeafSnapshotBinaryEncodingEnabled bool true Yes (write side only; reads are always dual)
LeafSnapshotMargin double 0.30 Yes
LeafSnapshotMaxCoverageLagSeconds int 300 Yes
LeafSnapshotReClassifyEveryNCheckpoints int 64 Yes
LeafSnapshotSegmentBytes long 4 MiB Yes (next capture; set it globally - see below)
MaintainProjectionDigest bool true Yes
MaterialiserCheckpointEntries int 5000 Yes
MaterialiserCheckpointInterval TimeSpan 5 seconds Yes
MaxAtomicActionArgsBytes int 32 KiB (32 768) Yes (global; read from the default options)
MaxAtomicActionSteps int 64 Yes (global; read from the default options)
MaxCacheValueBytes long? null (unbounded mirror) Yes
MaxConcurrentAutoSplits int 2 Yes
MaxClusterConcurrentAutoSplits int? null (gate disabled) Yes
MaxConcurrentDrains int 4 Yes
MaxConcurrentMigrations int 4 Yes
MaxConcurrentShardConsolidations int 1 Yes
MaxConcurrentSnapshotBaselineFolds int 4 Yes
MaxConcurrentSnapshotCaptures int 4 Yes
MaxConcurrentStorageUsageSurfaces int 16 Yes
MaxConcurrentStorageUsageTrees int 8 Yes (cluster-wide; read from the default options)
MaxCursorSnapshotPinTtl TimeSpan 7 days Yes
MaxDurableUnresolvedReplayWork int 1 024 Yes
MaxEstimatedBytes long? null (unbounded) Yes
MaxKeyLength int? null (unbounded) Yes
MaxLeafBytes long 64 MiB Yes (on next activation)
MaxLeafEntriesBeforeForcedCompaction int 0 (disabled) Yes
MaxLeafReplayEntries int 10 000 Yes
MaxLiveKeys long? null (unbounded) Yes
MaxLockLeaseDuration TimeSpan 5 minutes Yes (global; read from the default options)
MaxLeavesPerScanPage int 64 Yes
MaxPhysicalShardsPerTree int 256 Yes
MaxPinnedSagaDecisions int 100 000 Yes
MaxScanPageDuration TimeSpan 5 seconds Yes
MaxScanPageStallDuration TimeSpan? null (derived from ResponseTimeout) Yes
MaxScanRetries int 3 Yes
MaxSnapshotReplayEntries long 10 000 000 Yes
MaxValueSizeBytes int? null (unbounded) Yes
MinTombstoneRatioForCompaction double 0.0 (disabled) Yes
OptimisticShardRootPointReads bool true Yes (on next activation)
PrefetchEntriesScan bool false Yes
PrefetchKeysScan bool false Yes
ProjectionRebuildPolicy ProjectionRebuildPolicy SnapshotThenWal Yes
PublishEvents bool false Yes
QueueCapacity int? null (unbounded) Yes
RetryPolicy ILatticeRetryPolicy? null (no retry) Yes
ShardForwardTimeout TimeSpan 15 seconds Yes (on each shard root's next activation)
ShardHealingBackpressureOpsPerSecond double 200.0 Yes (on next sweep)
ShardHealingCooldown TimeSpan 5 minutes Yes (on next sweep)
ShardHealingEnabled bool true Yes (off on next sweep; on at the next sweep or keepalive tick, or at the next healing bootstrap if healing never started)
ShardHealingInterval TimeSpan 30 seconds Yes (on next activation)
EmptyTreeProbeBudget TimeSpan 10 seconds Yes (on next reshard or resize)
ShedSnapshotOpensWhenSaturated bool true Yes
SnapshotBaselineTtl TimeSpan 6 hours Yes
SnapshotLeafIdleTtl TimeSpan 30 minutes Yes (currently inert: no code path reads it)
SoftDeleteDuration TimeSpan 72 hours Yes
SplitDrainBatchSize int 1024 Yes
StarvationDriveBudget TimeSpan 5 minutes Yes (on each leaf's next activation)
StorageUsageCacheTtl TimeSpan 10 seconds Yes
StorageUsagePollInterval TimeSpan 15 seconds Yes (global; read once when each silo's poller starts)
StorageUsageDeepPollInterval TimeSpan TimeSpan.Zero (disabled) Yes (global; read once when each silo's poller starts)
StorageUsageRollupBudget TimeSpan 20 seconds Yes (cluster-wide; read from the default options)
TombstoneGracePeriod TimeSpan 24 hours Yes
TxDecisionRetention TimeSpan 60 seconds Yes
TxRegistryAdmissionBudgetBytes long? 768 KiB Yes
TxRegistryShardCount int 1 Yes (global; read from the default options; see the opt-in note)
VersionVectorRetention TimeSpan InfiniteTimeSpan (disabled) Yes
WalAppendDispatchTimeout TimeSpan 30 seconds Yes
WalBytePressureReclaimTarget double 0.8 Yes
WalDrainBudget TimeSpan 75 seconds Yes
WalMaxBatchBytes long 4 MiB Yes
WalMaxBatchEntries int 100 Yes
WalFlushPreflightTimeout TimeSpan 5 seconds Yes
WalFlushTimeout TimeSpan 15 seconds Yes
WalGcInterval TimeSpan 1 hour (band ceiling) Yes (global; read once when the scheduler starts)
WalGcMinInterval TimeSpan 30 seconds (band floor) Yes (global; read once when the scheduler starts)
WalGcStartupDelay TimeSpan 30 seconds Yes (global; read once when the scheduler starts)
WalMaterialiserMaxConcurrentReplays int 0 (auto = the lesser of Environment.ProcessorCount and the container CPU grant) Yes (on next silo start; set it globally - see below)
WalMaterialiserPinFlushIntervalMs int 250 Yes (global; read from the default options)
WalMaterialiserPinBuckets int 1 (floor; the store splits itself above it) Yes (global; read from the default options; see the rolling-upgrade note)
WalMaterialiserPinShards int 8 No (durable-store migration; see below)
WalMaterialiserPinShedCeiling TimeSpan? null (disarmed) Yes (global; read from the default options)
WalMaxPendingBatches int 16 Yes
WalAppendCoalescingInFlightThreshold int 4 Yes
WalBatchedSingleEntryAppends bool true Yes
WalMaxRetainedBytes long? null (disabled) Yes
WalDurabilityHoldCeilingBytes long? 256 MiB Yes
WalPartitions int 8 No (per-tree, pinned at first registration)
WalRetention TimeSpan? null (disabled) Yes
WalReplayPermitQueueDepthPerPermit int 4 Yes
WalReplayPermitMaxQueueWait TimeSpan 5 seconds Yes
WalReplayMaxRecordsPerTurn int 256 Yes
WalReplaySliceBudget int 256 Yes
WalSaturationAcuteOnly bool true Yes (set it globally - see below)
WalSaturationDispatchTimeoutThreshold int 1 Yes (global; read from the default options)
WalSaturationFlushLatencySampleWindows int 3 Yes (global; read from the default options)
WalSaturationFlushLatencyThreshold TimeSpan? null (disabled) Yes (the classifier reads the default options; a per-tree value sets only that tree's trip threshold - see below)
WalSaturationMaterialiserLagSampleWindows int 3 Yes (global; read from the default options)
WalSaturationMaterialiserLagThreshold TimeSpan? 30 seconds Yes (global; read from the default options)
WalDrainLagConsumerFreshness TimeSpan 5 minutes Yes (global; read from the default options)
WalDrainLagHolderLogInterval TimeSpan? 10 minutes Yes (global; read from the default options)
WalSaturationMaterialiserPinLatencySampleWindows int 3 Yes (global; read from the default options)
WalSaturationMaterialiserPinLatencyThreshold TimeSpan? null (disabled) Yes (global; read from the default options)
WalSaturationProviderFailureRateThreshold int 1 Yes (global; read from the default options)
WalSaturationRecoveryWindow TimeSpan 1 second Yes (global; read from the default options)
WalSaturationRecoveryReleaseBatch int 16 Yes (global; read from the default options)
WalSaturationSampleInterval TimeSpan 200 milliseconds Yes (global; read once at silo start)
WalSaturationThrottledRatio double 0.75 Yes (global; read from the default options)
WalAdmissionSaturationWaitBudget TimeSpan 5 seconds Yes
SetManyFanOutBudget TimeSpan Timeout.InfiniteTimeSpan (unbounded) Yes
SetManyEnvelopeBudget TimeSpan Timeout.InfiniteTimeSpan (unbounded) Yes
WalAdmissionSaturationCallBudget TimeSpan Timeout.InfiniteTimeSpan (unbounded) Yes
WalThrottledAdmissionPace TimeSpan 25 milliseconds Yes
WalStorageProvider Func<string, IWalStorageProvider>? null (DI default) Yes

Contents