Skip to content
CAI
Software that uses CAICheck a score

esl/cets

56.9

Adequate · 2 October 2026

2.8k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Cluster ETS is a distributed Erlang library that replicates in-memory Term Storage tables across multiple nodes to ensure data consistency and local read performance. It provides mechanisms for cluster discovery, node joining, and conflict resolution, while handling network splits and reconnections safely. The system includes a comprehensive API for managing data operations and is supported by extensive testing for reliability.

Features

Initial release of Cluster ETS with replication, conflict handling, and CI/CD automation

This entry introduces the Cluster ETS library, which enables replication of Erlang Term Storage (ETS) tables across multiple nodes, allowing inserts and deletes to be synchronized. Users can configure a \handle\_conflict\ function to manage record collisions when partitions merge, and the system supports various discovery backends (such as file-based) to identify cluster members. The release includes a comprehensive API (\cets\, \cets\_join\, \cets\_discovery\), automated Hex.pm publishing via GitHub Actions, code coverage reporting, and strict Dialyzer checks for error handling and return values.

(repo-wide) · high confidence

Introduce CETS: Clustered Erlang Term Storage

Adds CETS, a new in-memory data store that replicates writes across all nodes in a cluster while serving reads locally. The implementation includes core modules for cluster discovery, join logic, and operation handling, along with a file-based discovery backend and a distribution blocker to manage node reconnections safely during cleaning. Users can now use CETS APIs for inserting, deleting, and pausing/unpausing data operations in a distributed environment.

src · high confidence

Test coverage

Expanded Common Test suite for CETS distributed data store

Added a comprehensive Common Test suite for the CETS distributed data store, introducing dedicated test suites for core operations (cets), discovery (cets\_disco), node joining (cets\_join), cluster status (cets\_status), network splits (cets\_netsplit), and distribution blocking (cets\_dist\_blocker). The changes include new test helper modules for managing test peers, RPC calls, logging assertions, and wait conditions, along with a mock discovery backend to facilitate testing. These tests cover scenarios such as node discovery, table replication, conflict handling, netsplit recovery, and graceful shutdowns to ensure system reliability.

test · 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

Score

  • CAI 57 → 57 (+0.1)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 97 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 44 → 44 (+0.2)
  • Readiness 63 → 63 (+0.0)
  • Security 57 → 57 (+0.0)

Resolved (4)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Hotspot: src/cets.erl (src/cets.erl)

New (1)

  • Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

esl/cets 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit be053be7fbecb77e934c90643f962fc1bdae005b — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.