OpenRiak/riak_kv
57.7
Adequate · 17 September 2026
70.4k
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is Riak KV, a distributed key-value store that manages data persistence, retrieval, and map-reduce operations. It supports advanced data structures like CRDTs and secondary indexes, with configurable storage backends and JavaScript-based processing logic. The codebase emphasizes rigorous verification through property-based testing and provides internal observability via DTrace probes, while maintaining a modernized build and documentation infrastructure.
Features
New include headers for capabilities, datatypes, and DTrace probes
This change introduces several new header files in the include directory to support updated internal structures and observability. riak\_kv\_capability.hrl defines macros for negotiating cluster capabilities such as CRDT epoch versions, secondary index versions (v3), and backpressure settings. riak\_kv\_types.hrl establishes the type definitions and mappings for new CRDT datatypes including counters, sets, maps, HLL, and GSET, along with their versioning epochs. riak\_kv\_dtrace.hrl adds DTrace probe categories for GET, PUT, DELETE, buckets, and keys FSMs to enable runtime tracing. Additionally, riak\_kv\_index.hrl updates the index query record to v3, supporting integer start/end terms and new fields like term\_regex and max\_results, while riak\_kv\_vnode.hrl refactors request records and introduces a vnode lock macro for background management tasks.
include · high confidence
Behavioural changes
Deprecation of KV health checks
The KV health check mechanism has been deprecated, meaning the system no longer relies on or exposes these specific health probes. Users should transition to alternative health monitoring strategies provided by the platform or container orchestrators.
src · high confidence
Removal of riak\_kv.app manifest
The riak\_kv.app application manifest has been deleted from the ebin directory. This file previously defined the application metadata, including the version (0.12.0), the list of compiled modules, and application dependencies. Its removal indicates a shift in how the application is packaged or initialized, likely relying on alternative mechanisms such as .app.src files or dynamic module loading.
ebin · high confidence
Fixes
Fix reduceMin and reduceMax JavaScript builtins and add multi-backend schema
The map-reduce JavaScript builtins in priv/mapred\_builtins.js have been corrected: reduceMin and reduceMax now properly handle empty input arrays by returning an empty list instead of crashing, and they use explicit comparison logic instead of relying on string sorting which could yield incorrect results for numeric data. Additionally, a new multi\_backend.schema file has been added to define configuration mappings for specifying multiple storage backends (bitcask, leveldb, leveled, memory) via the cuttlefish configuration system.
priv · high confidence
Test coverage
Added QuickCheck (EQC) test suites for Riak KV components; Expanded test coverage for backend utilities, schema validation, and URL encoding.
Dependencies
Add Jekyll documentation site dependencies
Added a new Gemfile and Gemfile.lock to the docs directory to establish the build environment for the documentation site. This introduces Jekyll (version 4.4.1) as the core static site generator, along with the just-the-docs theme (pinned to 0.10.1) for styling and the jekyll-relative-links plugin to support relative link resolution within the documentation structure.
(dependencies) · high confidence
Migrate to rebar3 and update build configuration
The build system has been upgraded from rebar to rebar3, replacing the legacy Makefile with rebar3 profiles for compilation, testing, dialyzer, and xref checks. The minimum supported Erlang/OTP version is now 24.0, and dependencies have been switched from Mercurial repositories to GitHub branches (openriak-3.4). Additionally, new configuration files for spellchecking, link validation, and a wordlist have been added to support documentation quality.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 58.
Lenses
- Code Health 84
- Architecture 91
- Maturity 79
- Readiness 55
- Security 77
- Event-Driven 48
- Event Sourcing 71
Changes since last survey
- 300 commits — 282 feature/other, 18 fixes
By area
- (root) — 87 commits
- (repo) — 43 commits
- priv/riak_kv.schema — 29 commits
- src/riak_kv_vnode.erl — 15 commits
- src/riak_kv_leveled_backend.erl — 10 commits
- src/riak_kv_ttaaefs_manager.erl — 10 commits
- src/riak_kv_replrtq_snk.erl — 8 commits
- eqc/replrtq_snk_eqc.erl — 6 commits
- src/riak_kv_clusteraae_fsm.erl — 6 commits
- .github/workflows — 5 commits
- docs/OperationsAndTroubleshootingGuide.md — 5 commits
- src/riak_kv_get_fsm.erl — 5 commits
- src/riak_kv_put_fsm.erl — 5 commits
- docs/NextGenREPL.md — 4 commits
- src/riak_kv_eraser.erl — 4 commits
- src/riak_client.erl — 3 commits
- src/riak_kv.app.src — 3 commits
- src/riak_kv_mrc_sink.erl — 3 commits
- src/riak_object.erl — 3 commits
- docs/InitialDesignDecisions.md — 2 commits
Notable commits
- fix: Alter docs to reflect fix to leveled issue 444 (#109)
- fix: Bump tags to fix plugins
- fix: EQC fixes
- fix: Fix bad_return_value
- fix: Fix for OTP24 support, switch lager for logger, remove stacktrace compat.
- fix: Fix lager ref introduced by merge
- fix: Fix spurious lost put coordinator acks
- fix: Fix the spec for init_client
- fix: Fixes a bug where some non-POSIX-compliant Linux distros only implement the ulimit command via a non-POSIX shell.
- fix: High Priority fixes - AI review (#98)
- fix: Merge pull request #1755 from keynslug/fix/lost-put-coord-acks@2.9
- fix: Merge remote-tracking branch 'keynslug/fix/lost-put-coord-acks@2.9' into develop-3.0-292
- fix: Nhse o34 orkv.i69 eqc fix (#106)
- fix: Revert branch following merge
- fix: Switch to fixed riak_dt
- fix: Type fixes required by OTP26 dialyzer (#1855)
- fix: Vagueness fixes - AI review (#99)
- fix: Web machine small fixes for riak_kv_wm_object (#1854)
- change: 2.9.1 Release - tagged rebar.config
- change: Adapt sink model to have peer limit and restrict to one initial queue
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
OpenRiak/riak_kv was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 48285d5d7aa72c4167e338b3d28ae9ba434cfcb7 — the exact code this score is about.
- Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.