Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.0 - 2026-06-15
Added
disconnect_on_deregisterconfig option (defaulttrue). When set tofalse, nodes that disappear from DNS but still have a live distribution connection are left connected and only removed once the connection drops naturally. This prevents spurious:globalpartition-prevention cascades during graceful shutdowns that use a deregistration delay.
Fixed
DynamicSrv.Epmd.address_please/3now returns{:error, reason}instead of crashing when DNS resolution fails (e.g.:nxdomain). The distribution layer handles this as a failed connection attempt rather than a process crash.
1.0.2 - 2026-06-12
Fixed
- Enable EDNS(0) (
edns: 0) on all:inet_res.lookup/4calls in both the clustering strategy and the EPMD module. Many modern DNS resolvers (e.g. Consul, CoreDNS) require EDNS(0) to return full SRV responses over UDP; without it, lookups could silently return empty or truncated results and cause cluster discovery failures.
1.0.1 - 2026-05-14
Changed
- Downgrade "No nodes found" log message from
infotodebugto reduce noise in steady-state operation
1.0.0 - 2026-05-08
Fixed
- Replace double poll scheduling with
handle_continue/2to ensure a single, clean poll chain - Use
handle_continue(:poll, state)for initial poll instead of callingdo_poll/1directly ininit/1 - Add catch-all clause in
get_nodes/1to handle unexpected resolver responses without crashing - Fix regex character class
[a-z0-9-_]to[a-z0-9_-]to avoid ambiguous range matching
Added
- Test coverage for unexpected resolver responses
- Test coverage for SRV records with non-matching hostname formats
- Test coverage for missing
:serviceconfig - Test coverage for
meta: nilinitialization path - Test coverage for self-exclusion from the node list
- Test coverage for recurring polls after the initial poll
0.1.4 - 2025-09-08
Fixed
- Fix hexdocs configuration — add README and links
0.1.3 - 2025-09-07
Fixed
- Fix broken link to GitHub repository
0.1.2 - 2025-09-07
Added
- ExDoc support for generating documentation
0.1.1 - 2025-09-07
Fixed
- Fix packaging configuration for Hex publish
0.1.0 - 2025-09-07
Added
- Initial release of
Cluster.Strategy.DynamicSrv— a libcluster strategy using DNS SRV records - Support for Consul SRV records in
<node-name>.<service-domain-name>format - Configurable polling interval (default 5000ms)
- Configurable resolver function for testing and custom DNS backends
- MIT license