Skip to content
CAI
Software that uses CAICheck a score

zhongwencool/ecron

60.7

Adequate · 2 October 2026

2.2k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Ecron is a distributed cron job scheduler that manages job execution across a cluster of nodes. It provides a unified process architecture for global job distribution, supporting features like singleton constraints and configurable runtime limits. The system exposes structured telemetry events for monitoring job lifecycles and includes a modernized API for creating and managing scheduled tasks.

Behavioural changes

Major architectural overhaul: new global cluster support, telemetry, and simplified API

This release replaces the previous per-job gen\_server architecture with a unified \ecron\ process and introduces a new \ecron\_monitor\ for distributed cluster health checks, allowing jobs to run globally across nodes. A new \ecron\_telemetry\_logger\ provides structured logging for job events (success, crash, abort, skip) and global up/down states, replacing the old configuration-based job loading. The API has been modernized with \create/3\ and \create/4\ replacing the legacy \add\ functions, and new options like \max\_runtime\_ms\ and \singleton\ are now supported. The application version has been bumped to 1.1.1.

src · high confidence

New telemetry events and job record fields added to ecron.hrl

The ecron.hrl header file introduces new telemetry event definitions for job lifecycle states, specifically 'aborted' and 'skipped' (in addition to existing 'success', 'crashed', 'activate', 'deactivate', 'delete', 'global up', and 'global down' events). It also updates the internal job record to track counts for aborted and skipped executions, and adds compatibility macros for module documentation support in OTP 27+.

include · high confidence

Test coverage

Added property-based and stateful tests for ecron

Added new property-based tests using the Proper library to verify cron spec parsing, application configuration loading, and job server state management, alongside stateful tests for global job distribution across clustered nodes and specific behavioral tests for job execution limits and singleton constraints.

test · high confidence

Dependencies

Added Elixir Mix dependency management for telemetry

The project now includes a mix.exs and mix.lock file to manage the 'telemetry' dependency (version 1.3.0) using the Elixir Mix build tool. This allows the Ecron application to be treated as a Mix project, although the commit notes that rebar3 should still be used for compiling and running tests.

(dependencies) · high confidence

Updated documentation build configuration and added telemetry dependency

The project now uses \ex\_doc\ (configured via the new \docs.exs\) to generate documentation, replacing the previous setup. This includes adding a logo, enabling Mermaid diagrams, and organizing API references into specific groups. Additionally, \telemetry\ has been added as a runtime dependency (resolved to version 1.3.0 in \rebar.lock\), and the build configuration (\rebar.config\) has been expanded to include plugins for \ex\_doc\, \erlfmt\, and \covertool\, along with stricter code analysis checks.

(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

Score

  • CAI 63 → 61 (-2.3)
  • 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.0)
  • Readiness 63 → 55 (-8.8)
  • Security 96 → 96 (+0.0)

Resolved (3)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)

New (1)

  • Unbounded dependency requirement: telemetry

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

Survey your own repository

zhongwencool/ecron 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 8af958b3289dbdc8ba4fea0c0c993242fddcc21f — 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.