basho/riak_core
64.6
Adequate · 23 September 2026
41.5k
lines of production code
Erlang
primary language
5
measurements over time
What this system is
This system is a distributed cluster management framework that handles node coordination, ring topology, and data handoff. It provides optimized data structures for consistent hashing and version vector tracking, while offering a comprehensive configuration schema for cluster behavior. The system includes robust tooling for background resource management and extensive property-based testing to verify core reliability.
Features
Expanded header definitions for background management, handoff, and vnode requests
The \include\ directory received several new header files and updates to existing ones to support new internal capabilities. A new \riak\_core\_bg\_manager.hrl\ introduces type definitions and records for a background resource manager (locks and tokens) used to coordinate shared resources. The \riak\_core\_handoff.hrl\ is significantly expanded with new records for handoff statistics, types, and status tracking, enabling more granular visibility into handoff progress. Additionally, \riak\_core\_vnode.hrl\ introduces a new \riak\_coverage\_req\_v1\ record and updates the \riak\_core\_fold\_req\_v2\ record, while \riak\_core\_ring.hrl\ defines current and legacy ring version numbers. These changes collectively enhance the system's ability to manage background tasks, track handoff states, and handle coverage requests.
include · high confidence
Introduce chashbin and dvvset modules for optimized hashing and version vector management
Added new Erlang modules chashbin and dvvset to the src directory. chashbin provides a binary representation of consistent hash rings, enabling efficient iteration and lookup of partition ownership. dvvset implements a compact Dotted Version Vector (DVV) container for managing concurrent value versions. These modules support the broader cluster metadata and ring management capabilities by providing optimized data structures for hash-based partitioning and version tracking.
src · high confidence
New Riak Core configuration schema for cluster management
A new \riak\_core.schema\ file has been added to the \priv\ directory, introducing a comprehensive set of configuration mappings for Riak Core. This schema defines settings for bucket properties (such as \n\_val\ and \ring\_size\), handoff controls (including \handoff.ip\, \handoff.port\, \handoff.ssl\ options, and inbound/outbound flags), and platform-specific directory paths. The schema includes validators to ensure ring sizes are powers of two and within acceptable bounds, and it exposes settings like \dtrace\ support and \transfer\_limit\ for data handoff concurrency.
priv · high confidence
Behavioural changes
Removed riak\_core.app from ebin directory
The riak\_core.app file has been removed from the ebin directory. This change likely reflects a build system update where the .app file is now generated or managed differently, rather than being a static file in the output directory.
ebin · high confidence
Upgrade to Erlang/OTP 22+ and modernize build configuration
The project now requires Erlang/OTP 22.0 or later, as indicated by the new minimum OTP version constraint in rebar.config. The build system has been updated to use rebar3, with the Makefile targets refactored to use the $(REBAR) variable. Additionally, the configuration enables warnings as errors, adds xref and dialyzer checks, and updates dependencies to use specific branches (e.g., poolboy, clique, eleveldb) rather than fixed versions or older repositories.
(repo-wide) · high confidence
Test coverage
Added new EQC property-based tests for core components; Expanded automated test coverage for core subsystems.
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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 58 → 65 (+6.1)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 82 → 88 (+6.1)
- Architecture 100 → 100 (+0.0)
- Maturity 35 → 48 (+12.8)
- Readiness 74 → 64 (-9.7)
- Security 75 → 92 (+17.7)
- Event Sourcing 100 → 100 (+0.0)
Resolved (24)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Test reliability not included
- TooManyMethods: hashtree (src/hashtree.erl)
- TooManyMethods: riak_core_bg_manager (src/riak_core_bg_manager.erl)
- TooManyMethods: riak_core_claim_binring_alg (src/riak_core_claim_binring_alg.erl)
- TooManyMethods: riak_core_claimant (src/riak_core_claimant.erl)
- TooManyMethods: riak_core_console (src/riak_core_console.erl)
- TooManyMethods: riak_core_gen_server (src/riak_core_gen_server.erl)
- TooManyMethods: riak_core_handoff_manager (src/riak_core_handoff_manager.erl)
- TooManyMethods: riak_core_membership_claim (src/riak_core_membership_claim.erl)
- TooManyMethods: riak_core_node_watcher (src/riak_core_node_watcher.erl)
- TooManyMethods: riak_core_ring (src/riak_core_ring.erl)
- TooManyMethods: riak_core_ring_manager (src/riak_core_ring_manager.erl)
- TooManyMethods: riak_core_security (src/riak_core_security.erl)
- TooManyMethods: riak_core_util (src/riak_core_util.erl)
- …and 4 more
New (127)
- Coverage not measured — no coverage collector is wired up
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Documentation: no architecture or design documentation (README.md)
- Duplicated block (10 lines × 3) (src/riak_core_vnode.erl)
- Duplicated block (12 lines × 2) (src/riak_core_security.erl)
- Duplicated block (13 lines × 2) (src/riak_core_console.erl)
- Duplicated block (14 lines × 2) (src/riak_core_console.erl)
- Duplicated block (14 lines × 2) (src/riak_core_security.erl)
- Duplicated block (14 lines × 4) (src/riak_core_security.erl)
- Duplicated block (15–16 lines × 2) (src/riak_core_security.erl)
- Duplicated block (17 lines × 2) (src/riak_core_claim_sim.erl)
- Duplicated block (24 lines × 2) (src/riak_core_vnode.erl)
- Duplicated block (25 lines × 2) (src/riak_core_security.erl)
- Duplicated block (5 lines × 2) (src/bloom.erl)
- Duplicated block (5 lines × 2) (src/riak_core_broadcast.erl)
- Duplicated block (5 lines × 2) (src/riak_core_security.erl)
- Duplicated block (5 lines × 2) (src/riak_core_security.erl)
- Duplicated block (5 lines × 3) (src/gen_nb_server.erl)
- Duplicated block (6 lines × 2) (src/riak_core_priority_queue.erl)
- Duplicated block (6 lines × 3) (src/riak_core_console.erl)
- …and 107 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
basho/riak_core 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 23 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 25d9a6fa917eb8a2e95795d64eb88d7ad384ed88 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-955b9cee9818.