zhongwencool/ecron
60.7
Adequate · 2 October 2026
2.2k
lines of production code
Erlang
primary language
2
measurements over time
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.