Skip to content
CAI
Software that uses CAICheck a score

fishcakez/acceptor_pool

35.0

Weak · 2 October 2026

1.1k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a mature Erlang library providing a robust TCP acceptor pool with supervisor-style lifecycle management. It focuses on high availability and stability by gracefully handling transient network errors, preventing aggressive restart loops, and offering detailed connection tracking. Recent efforts have centered on refining error handling, improving interface monitoring, and simplifying build dependencies for its example applications.

How it got here

2016 — Acceptor pool library development

12 changes.

This period focused on the initial release and refinement of the acceptor\_pool library, introducing a TCP acceptor architecture with supervisor-style management. Significant effort was dedicated to refactoring the acceptor lifecycle, enhancing socket error handling, and enabling code reloading capabilities. Comprehensive testing was implemented to cover the pool's lifecycle, supervision, and introspection features, alongside an example telnet echo application demonstrating graceful connection handling.

2018 — CI expansion and test refinement

2 changes.

The project expanded its continuous integration pipeline to support multiple Erlang/OTP versions and enforced stricter code quality checks using xref and dialyzer. Concurrently, the test suite for the acceptor pool was updated to reflect implementation changes, including the removal of permanent restart policy tests and the addition of interface monitoring verification.

2019 — Simplified dependency configuration for telnet\_echo example

1 change.

The telnet\_echo example no longer fetches the acceptor\_pool dependency from a remote Git repository; it now relies on the local or globally available package, simplifying the build setup.

2022 — Improved TCP acceptor stability and connection tracking

1 change.

The acceptor pool now handles transient connection errors (such as \enotconn\) gracefully without killing the listen socket, ensuring higher availability under load. It also provides more detailed connection information by including the specific listening socket name in accept messages when bound to \0.0.0.0\, allowing users to identify which interface accepted a connection. Additionally, the pool now returns the acceptor process ID upon socket acceptance, enabling direct process control, and restricts acceptor restart policies to \transient\ or \temporary\ to prevent aggressive restart loops on persistent errors.

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 30 → 35 (+4.7)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 97 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 27 → 43 (+16.1)
  • Readiness 60 → 64 (+4.1)
  • Security 67 → 67 (+0.0)
  • Event-Driven 10 → 10 (+0.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no usage examples (examples/telnet_echo/README.md)

New (2)

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

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

Survey your own repository

fishcakez/acceptor_pool 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 7346b9858bc1c95e7fbc921143d38ad06c9bf218 — 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.