Skip to content

Release notes — 0.15.0

Released 2026-06-28 with DNS Conduit 0.15.0.

Changes merged since the most recent release, slated for the next version.

New features

  • Dataplane runtime models — dataplane.runtime: sync | split_io with policy_workers, io_workers, and optional slot_chunk_size; split_io parks upstream waits so ingress keeps accepting queries during slow upstreams. Start-time setting (restart to change). See Runtime and concurrency, Dataplane, and Dataplane runtime tuning.
  • Shutdown drain controls — shutdown.drain (default on) and shutdown.drain_timeout_ms (default 5000) bound the on-shutdown drain of in-flight transactions; a second SIGTERM/SIGINT abandons the wait. Settings are dynamic (no restart — applied/reloaded values take effect on the next shutdown). See Shutdown and Runtime and concurrency.
  • Per-listener ingress overrides — optional threads, reuse_port, name, and rcvbuf on each listener entry, inheriting block defaults; a per-listener name becomes the listener metric label. See Listeners and Pools and backends.
  • Backend names — optional name on pool backends for a stable backend metric label and overlay patches by (pool, name) without repeating address. See Pools and Pools and backends.

Improvements

  • Overlay merge by backend name — control-plane patches can target backends by (pool, name) when name is set; unknown names are rejected. See Configuration model.
  • Slot pool metrics — conduit_slots_in_use, conduit_slots_capacity, conduit_slot_pool_exhausted_total; conduit_forward_outstanding counts parked upstream waits under split_io. See Built-in metrics.

Upgrade notes

  • Omitted dataplane: block behaves as today (sync) — no action required to upgrade. Deployments that need ingress concurrency during slow upstreams should evaluate split_io; see Dataplane runtime tuning.
  • dataplane.runtime, policy_workers, io_workers, and listeners / forward changes are start-time: run conduitctl validate --file …, then restart to apply them. The shutdown drain settings, by contrast, are dynamic (apply/reload, no restart).
  • Backend name is optional; backends without one keep using address as the backend metric label and overlay key, so existing dashboards and overlays are unaffected.

All changes in this release (automated pull request list).