Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The Rest of the Family

This book covers the engine: what resolves a configuration, what stores it, what watches it, and the macro that declares one. Four crates.

Everything else that carries the name lives in a repository of its own, with a book on this same site. They are separate because they release separately — a store's client library moving, or a Node package needing a fix, is not a reason to re-cut the engine — and each of them names this engine with a caret, so it picks up a patch release here when it is ready rather than when it is forced.

BookWhat it coversShips as
Remote storesetcd, Consul, Vault, NATS, Redis, S3, Firestore and git — and the server that hands a section to a client that cannot reach any of themeight crates, plus dynamic-config-server
Pythonthe same engine behind a Python API: dataclasses, Pydantic, msgspec, asynciodynamic-config-py on PyPI
Node.jsthe same engine behind Node-API: Zod, Ajv, a plain function, a watcher that never blocks the loopdynamic-config-node on npm
Python web frameworksthe wiring, the request scope, the health surface and the test doors for nine Python web frameworksdynamic-config-py-web on PyPI
Rust web frameworksone reading of configuration per request for axum, Actix Web, Loco and plain towerfive crates, dynamic-config-web-core at the bottom
Kubernetesannotate a pod, get the document as a live file, real env vars, or a native Secret — a mutating webhook, a rendering agent, an operator with two CRDs, one helm chartthree images on ghcr + Docker Hub, the chart on ArtifactHub

On the Rust-web side, Serving HTTP is this book's own chapter for the same crates the /rust-web/ book documents in full — the engine-side view and the adapter-side view of one design.

What crosses between them is the trait. A store implements RemoteSource — or its async twin — and the engine knows nothing else about it. That is what lets the stores live elsewhere without this crate having a feature flag for each of them, and what lets somebody write a store this project has never heard of.

The trait carries watching as well as reading. A store says how it learns that its document changed — Native if it pushes, Conditional if it can be asked cheaply, Interval if neither — and overrides watch with its own mechanism where it has one. A store that says nothing still gets watched, by a poll that is spread across a fleet and backs off through an outage. Hot Reload & Watching is the caller's side.