Skip to content
CAI
Software that uses CAICheck a score

whitfin/local-cluster

57.0

Adequate · 18 September 2026

597

lines of production code

Elixir

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an Elixir library designed for managing local cluster lifecycles, specifically handling the startup, supervision, and teardown of child nodes. It provides a GenServer-based API for controlling node states, loading code, and managing application configurations within a cluster environment. The library integrates with Elixir's supervision trees to simplify process management and cleanup.

Behavioural changes

Local cluster management refactored to use GenServer supervision

The local cluster implementation has been significantly restructured to manage nodes via a GenServer process rather than starting them as independent linked processes. This change introduces a new \start\_link/2\ API that accepts an amount and a keyword list of options, including \:applications\ for controlling startup sequences, \:environment\ for overriding application settings, and \:files\ for loading additional code onto remote nodes. The previous \start\_nodes/2\ function is replaced by this more flexible supervision model, which also provides new functions like \nodes/1\, \members/1\, and \pids/1\ to retrieve cluster details, and supports registering the cluster under a specific name via the \:name\ option.

lib · high confidence

Major API overhaul to v2.0 with new cluster lifecycle management

The library has been upgraded to version 2.0, introducing a breaking change in how clusters are managed. The previous API functions \start\_nodes\ and \stop\_nodes\ have been replaced by \start\_link\ and \stop\, which now return a cluster process identifier (PID) that must be used to manage the lifecycle of child nodes. This change allows for better integration with Elixir's supervision trees and simplifies cleanup. The README has been updated to reflect these new usage patterns and setup instructions.

(repo-wide) · high confidence

Removal of legacy config/config.exs file

The project has removed the legacy \config/config.exs\ file, which previously used the deprecated \Mix.Config\ module. This change eliminates the default configuration template and any associated environment-specific import logic (e.g., \import\_config\), indicating a shift in how application configuration is managed, likely moving towards \config.exs\ with \Config\ or external configuration sources.

config · high confidence

Test coverage

Expanded test coverage for local cluster lifecycle and configuration

Added comprehensive tests for the local cluster functionality, covering cluster creation, node management (starting, stopping, and adding members), and verification of node states. The new tests also validate configuration options such as loading specific applications, spawning tasks across nodes, and overriding environment variables for child nodes.

test · high confidence

Dependencies

Upgrade to Elixir 1.7+ and add global\_flags dependency

The project now requires Elixir version 1.7 or higher, dropping support for earlier versions. It introduces a new production dependency on the \global\_flags\ library (version \~1.0) and registers it as an extra application, enabling the use of global flags for initialization. Additionally, optional development dependencies for Credo, ExDoc, and ExCoveralls are explicitly defined, and the GitHub repository URL has been corrected to use a hyphenated name.

(dependencies) · 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 57.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 50
  • Readiness 50
  • Security 78

Changes since last survey

  • 59 commits — 54 feature/other, 5 fixes

By area

  • (root) — 44 commits
  • lib/local_cluster.ex — 11 commits
  • .github/workflows — 2 commits
  • (repo) — 1 commit
  • test/test_helper.exs — 1 commit

Notable commits

  • fix: Fix Hex links due to underscores
  • fix: Fix a missing :ok in tests
  • fix: Fix an issue with repeated inclusions
  • fix: Fix param for setting remote log level (#12)
  • fix: Fix unit tests on older Elixir versions
  • change: Add an ex_doc dependency for releases
  • change: Add epmd setup to CI builds
  • change: Add first implementation of local_cluster
  • change: Add further documentation examples
  • change: Add load/2 to enable bootstrapping of additional files
  • change: Add missing Credo dependency
  • change: Add support for spawning new members in a cluster
  • change: Added logger level to to start_nodes/2
  • change: Added option to specify applications to start on cluster nodes (#15)
  • change: Allow environment overrides on child nodes
  • change: Attempt to resolve an issue in CI
  • change: Automatically include logger applications as necessary
  • change: Bump to v1.0.1
  • change: Bump to v1.0.2
  • change: Bump to v1.0.3
  • …and 39 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

whitfin/local-cluster 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 18 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 365fea56a47f4d908c3cb76447a98aa51cb3126e — 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-5d04157a340d.