appcore-control-plane
Stable 1.0.0 · MSRV Rust 1.89 · crates.io · docs.rs · code source
Guide et exemples maintenus par le crate
Le dépôt Runtime maintient le guide détaillé, exemple débutant et exemple intermédiaire. Le wiki résume la frontière publique ; les détails d’API et d’exécution restent avec le code du crate.
Responsabilité : implémentations génériques présence, heartbeat, discovery et leases.
Dépendances internes : contracts, core, distributed contracts et transport.
API principale : clients in-memory, file et offline; configuration HTTP, retry policy et trait transport ; transports standard one-shot, pooled et bearer ; coordinator et heartbeat policy ; guards leadership global/service ; validation endpoint sûr.
Utilisez PooledHttpTransport pour les appels réutilisables sans
authentification. BearerHttpTransport possède aussi un client réutilisable et
borné. Conservez StdHttpTransport uniquement lorsque le comportement V1
one-shot avec Connection: close est requis.
HttpControlPlaneClient convertit un body encodé une seule fois en
SharedHttpControlPlaneRequest et l'emprunte entre les retries bornés. Les
transports internes réutilisent la même allocation immuable ; les transports
externes existants conservent le fallback owned compatible. Les deux owners de
requête omettent les octets du body dans leur sortie Debug.
À utiliser pour coordination distribuée sans payload métier. Le profil file exige locks/storage certifiés. Le distant exige TLS et authentification du déploiement.
Le profil fichier limite l'état et le backup à 16 MiB et rejette tout état malformé ou futur. L'arithmétique d'expiration et d'epoch est vérifiée; l'épuisement de l'epoch échoue fermé au lieu de réutiliser un fencing token.
InMemoryControlPlane utilise par défaut 65 536 inscriptions/slots de lease
combinés et un budget estimé de 16 Mio retenus. with_limits peut réduire les
deux ; stats expose les octets actuels/de pic, les comptes et les admissions
rejetées. Le rejet est atomique, donc un enregistrement existant reste
utilisable. L'état fichier conserve la frontière JSON V1 de 16 Mio et limite
aussi l'état décodé à 262 144 enregistrements et 64 Mio.
Maturité : contrats et références stables; l'exploitation du service externe appartient au déploiement.