Skip to content
CAI
Software that uses CAICheck a score

phoenixframework/dns_cluster

56.0

Adequate · 18 September 2026

259

lines of production code

Elixir

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a library that provides flexible DNS-based cluster discovery for distributed applications. It enables nodes to locate each other by querying multiple DNS records, including SRV, A, and AAAA types, across various domain names and basenames. The codebase also includes comprehensive validation tests and updated documentation tooling.

Features

Support for multiple DNS queries and SRV records

The DNS cluster discovery mechanism now accepts a list of queries or tuples of \{basename, query}\ to support connecting to nodes with different basenames or across multiple domain names. It also introduces a new \:resource\_types\ option (defaulting to \\[:a, :aaaa\]\) that allows users to specify DNS record types, including the newly supported \:srv\ type, for more flexible node discovery configurations.

lib · high confidence

Test coverage

Added tests for DNSCluster query and resource type validation

Added comprehensive tests for the DNSCluster module, covering the validation of the :query option (accepting strings, {basename, query} tuples, and lists, while rejecting invalid terms), the handling of differing basenames in queries, and the validation of the :resource\_types option (ensuring it is a non-empty subset of \[:a, :aaaa, :srv\]).

test · high confidence

Dependencies

Update Elixir requirement and documentation tooling

The minimum supported Elixir version has been raised from 1.6 to 1.11, and the project now includes its CHANGELOG in the generated documentation via ExDoc. Additionally, the lockfile reflects updates to documentation dependencies, including EarmarkParser (1.4.33 to 1.4.46), ExDoc (0.30.2 to 0.40.3), Makeup (1.1.0 to 1.2.2), MakeupElixir (0.16.1 to 1.0.1), MakeupErlang (0.1.2 to 1.1.0), and NimbleParsec (1.3.1 to 1.4.2).

(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 56.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 53
  • Readiness 43
  • Security 100

Changes since last survey

  • 38 commits — 36 feature/other, 2 fixes

By area

  • (root) — 18 commits
  • lib/dns_cluster.ex — 15 commits
  • (repo) — 3 commits
  • lib/dns_cluster — 1 commit
  • test/dns_cluster_test.exs — 1 commit

Notable commits

  • fix: fix example
  • fix: revert first sentence
  • change: Add missing alias for DNSCluster.Resolver (#19)
  • change: Bump
  • change: Clarify RELEASE_NODE example in README.md
  • change: Housekeeping for less complexity and more readability (#18)
  • change: Include the changelog in the docs (#15)
  • change: Look up the hostname of a {basename, query} tuple, not the tuple (#25)
  • change: Make it so 🚀
  • change: Make it so 🚀
  • change: Make it so 🚀
  • change: Max concurrency must be at least 1
  • change: Merge pull request #11 from mruoss/dns-resolving
  • change: Merge pull request #5 from qdentity/max_concurrency_fix
  • change: Merge pull request #7 from davydog187/support-multiple-queries
  • change: Release 0.1.0
  • change: Release 0.1.1
  • change: Release 0.1.2
  • change: Release 0.1.3
  • change: Release 0.2.0
  • …and 18 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

phoenixframework/dns_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 1c54b42c67aec318ed148d55a70f2ff4a149c15c — 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.