Source: Codex archived thread 019c5d6d-702c-7133-90b9-a88fad081eed
Date context in thread: February 14-15, 2026
The thread’s conclusion was: Bedrock is architecturally promising for distributed durable state, but should be treated as pre-production for critical durability workloads until a few correctness/durability gaps are closed.
- Transaction model and conflict handling were seen as solid (
Repo.transactflow). - Control-plane/discovery architecture supports distributed coordination.
- Commit flow is designed around acknowledgements from configured logs.
- Overall shape is a good fit for Jido/Jido Signal persistence adapters.
- Durability contract vs implementation gap:
- Log/storage normal write paths use
:file.pwritein key paths without explicit per-append/per-advance sync. - This creates a crash-window risk (acknowledged write vs physically durable write).
- Unsafe defaults for HA durability:
desired_replication_factoranddesired_logsdefaults are1.- Distributed durability is not default-safe.
- Coordinator durability is opt-in:
- If
coordinator.pathis not set, coordinator Raft can be in-memory.
- Docs/implementation mismatch:
- Parts of docs were identified as overstating sync guarantees or lagging architecture changes.
The thread re-checked local code plus upstream items and concluded:
- The key durability concerns above were still present in
main/developat that time. minimum_durable_versionbehavior was still limited on released branches.feature/bedrock-as6jwas recognized as a strong architectural step, but still not closing core durability correctness gaps.
Positives:
- Demux/materializer split and durability tracking direction looked good.
- Object-storage abstraction was added, enabling future non-local backends.
Remaining blockers:
- WAL append path still acknowledged around
pwritebehavior in normal flow. - Materializer normal advancement path still lacked strong immediate sync semantics.
- Risky defaults and coordinator-path caveat still existed.
- Local filesystem object-store compare-and-set semantics were flagged as not strong enough for contention-heavy correctness guarantees.
Bottom line from the thread: good direction, not yet production-ready for “very durable” claims without hardening.
- For near-term production reliability: Mnesia was recommended as the safer choice.
- For long-term event-log-oriented architecture: Bedrock/as6j direction was considered worth investment if you are willing to own correctness hardening work first.
main/develop: no shipped S3 backend.feature/bedrock-as6j: object-storage abstraction exists, but only local filesystem backend was present in that thread.- Conclusion: S3 looked feasible long-term by architecture, but not production-ready yet without a real backend and strong conditional-write semantics.
- Make durability semantics explicit and testable (define what “durable” means at ack time).
- Close WAL/materializer sync correctness gaps in normal write paths.
- Raise/validate durability-safe defaults (or enforce profile checks at boot).
- Require persistent coordinator config (or fail fast in distributed mode).
- Align docs with actual sync/ack behavior and durability caveats.
- Harden object-storage conditional operations before introducing S3 backend claims.