• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

bedrock-kv / bedrock / b211a889780e5f478e8c33737f8353c293a193dc
82%

Build:
DEFAULT BRANCH: develop
Ran 05 Sep 2026 03:34PM UTC
Jobs 1
Files 213
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Sep 2026 03:30PM UTC coverage: 80.317% (+0.3%) from 80.007%
b211a889780e5f478e8c33737f8353c293a193dc

push

github

web-flow
Adopt bedrock_raft 0.10 and flatbuffer 0.6; extend DiskRaftLog to the new Log contract (#230)

Re-opens the dependency stack against `develop`. #225 was closed
unmerged and #226 was then merged *into* this branch, so the whole stack
has been sitting off `develop` since 2026-09-03 — `develop` still pins
`{:bedrock_raft, "~> 0.9"}` / `{:flatbuffer, "~> 0.5"}`. This PR lands
it. Closes bedrock-54w and bedrock-fu8.

Two commits: a mix.lock refresh, and the raft/flatbuffer major bumps
with the code they require.

## Why

`bedrock_raft` 0.10.0 extends the `Bedrock.Raft.Log` protocol and
changes the shape of the ack telemetry event, so the coordinator's
`DiskRaftLog` no longer satisfies the contract it implements. Three of
the additions exist for real reasons we want:

- **Votes must survive a crash.** Pre-0.10 the log persisted only
`current_term`; a node that voted, crashed, and came back could vote
again in the same term. 0.10 makes `voted_for/1` +
`save_election_state/3` part of the protocol so term and vote are
written together.
- **Replication is batched.** `transactions_from/4` lets the leader pull
one bounded batch per AppendEntries instead of everything from the
follower's cursor to the tail.
- **Purges must be honest.** The leader now repositions its send cursor
from a follower's hint via `has_transaction_id?/2`, so the log can't
leave purged records physically present.

Separately, `flatbuffer` 0.6 moves to compile-time, schema-specialized
codegen. 0.6.1 is what makes it adoptable cleanly (see below), and with
it every dep resolves from hex — the interim git-tag dep on
`bedrock_raft` is gone (`~> 0.10`), so nothing blocks `mix hex.publish`.

| dep | from | to |
|---|---|---|
| bedrock_raft | 0.9.7 | 0.10.0 |
| flatbuffer | 0.5.0 | 0.6.1 |
| iodata | 0.7.3 | 0.9.0 |
| telemetry | 1.3.0 | 1.4.2 (unblocked by raft relaxing its pin to `~>
1.3`) |

Plus a routine lock refresh of dev/test tooling with no `mix.exs`
requirement changes: req 0.7.4, mox 1.3... (continued)

51 of 52 new or added lines in 2 files covered. (98.08%)

6986 of 8698 relevant lines covered (80.32%)

1036.53 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
97.56
9.78% lib/bedrock/control_plane/coordinator/disk_raft_log.ex
Jobs
ID Job ID Ran Files Coverage
1 b211a889780e5f478e8c33737f8353c293a193dc.1 05 Sep 2026 03:34PM UTC 213
80.32
GitHub Action Run
Source Files on build b211a889780e5f478e8c33737f8353c293a193dc
  • Tree
  • List 213
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • b211a889 on github
  • Prev Build on develop (#DF02343E...)
  • Next Build on develop (#ABC99FAA...)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc