-
Rename Storage to Materializer. The
Bedrock.DataPlane.Storagemodule tree has been renamed toBedrock.DataPlane.Materializerto better reflect its role — materializing committed state from the write-ahead log. The:storagecapability is now:materializerin cluster config, and the corresponding config key changes accordingly:# Before capabilities: [:coordination, :log, :storage], storage: [path: working_dir] # After capabilities: [:coordination, :log, :materializer], materializer: [path: working_dir]
-
Add object storage layer. New
Bedrock.ObjectStoragemodule provides a backend-agnostic interface for persisting data to S3-compatible stores or the local filesystem. Supports chunked streaming reads/writes, snapshots, conditional puts, and versioned updates. See the S3 Object Storage guide. -
Add durability profiles. New
Bedrock.Durabilitymodule lets you inspect and enforce a cluster's durability posture. Profiles evaluate whether object storage, replication, and WAL configuration meet requirements. Defaults to:strictmode; use:relaxedfor local development. See the Durability Foundation guide. -
Add demux layer for shard-aware persistence. New
Bedrock.DataPlane.Demuxsplits committed mutations by shard and persists them asynchronously through per-shard servers and a persistence queue, without blocking commit acknowledgments. See the Async Persistence Queue guide. -
Add shard router. New
Bedrock.DataPlane.ShardRouterroutes keys to shards via ETS ceiling search on shard boundary keys, replacing the former storage team descriptor approach. -
Distribute system metadata through the resolver. Commit proxies now receive differential metadata updates (keys prefixed with
\xff) during conflict resolution, enabling proxies to stay current with cluster topology changes without a separate distribution channel. -
Add single-resolver fast path. Commit proxy finalization skips
Task.asyncandasync_streamoverhead when only one resolver is configured, reducing latency for non-sharded workloads. -
Add cluster bootstrap discovery. New
Bedrock.ClusterBootstrap.Discoverymodule initializes cluster state from object storage, enabling clusters to bootstrap from a durable snapshot. -
Redesign recovery phases.
TransactionSystemLayoutPhaseis renamed toTopologyPhase.StorageRecruitmentPhase,VacancyCreationPhase, andVersionDeterminationPhaseare removed — their responsibilities are now handled by the newMaterializerBootstrapPhase.