Skip to content

FeatureFramework 2.0: replica placement and configuration generations - #9

Merged
remdui merged 38 commits into
mainfrom
feat/replica-cluster-2.0.0
Sep 2, 2026
Merged

FeatureFramework 2.0: replica placement and configuration generations#9
remdui merged 38 commits into
mainfrom
feat/replica-cluster-2.0.0

Conversation

@remdui

@remdui remdui commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

Implements the FeatureFramework 2.0 foundation for static replica groups while keeping platform identity outside FeatureFramework and backend coordination isolated from core lifecycle.

Architecture

  • FeaturePlacement.ALL_NODES / GROUP_LEADER_ONLY is public metadata and is propagated through annotations, generated manifests, resolved definitions and catalogs.
  • FeatureState.SUPPRESSED has structured FeatureSuppression details independent of failures.
  • activation policy is evaluated before feature construction/resources.
  • ALL_NODES -> required GROUP_LEADER_ONLY graphs are rejected; optional cross-placement edges remain valid.
  • featureframework-cluster contains backend-neutral replica/configuration primitives and has no DataRegistry dependency.
  • featureframework-cluster-dataprovider adapts explicit raw SQL + fenced Redis coordination from DataProvider; no Hibernate and no cluster concepts are added to DataProvider.
  • MySQL generations are immutable; activation uses monotonically increasing generations and fenced publication.
  • stale fencing cannot advance the active generation or leave a partial generation.
  • managed configuration is allowlisted; local/*.yml is excluded unless explicitly added.
  • configuration mutation is policy-controlled so replicated followers reject managed writes centrally.
  • local LKG/drift recovery is retained under .replica/.
  • only the manually configured leader attempts authority acquisition; no automatic follower promotion exists.
  • leader authority uses <nodeId>/<bootUuid> ownership and DataProvider acquire/renew/release semantics.
  • an independent monotonic watchdog suppresses leader-only features before the lease safety window expires if renewal cannot be proven, including blocked Redis calls.
  • late renewal results from an authority instance already revoked by the watchdog cannot resurrect authority.
  • leader-only activation is gated until host startup completes; normal successful renewals do not reload the graph.
  • runtime identity remains an application concern: ProxyFeatures/ServerFeatures will adapt DataRegistry 1.17 RuntimeIdentity into ReplicaNodeIdentity in later steps.

Build baseline

  • FeatureFramework 2.0.0
  • HauntedPlatform parent 1.5.0
  • DataProvider 3.4.2
  • DataRegistry 1.17.0

Validation

Final head: c08120fd9e887116b6d46f6a3dc6503b2c9ed470

  • CI Lint: green
    • ShellCheck: green
    • shared Maven policy / verify: green
    • resolved build model capture: green
  • CI Tests and Coverage: green
    • full Maven verify: green
    • external BOM consumption: green
    • MySQL 8.4 / Redis 7.4 replica backend integration tests: green
    • Paper and Velocity platform acceptance: green
  • PR mergeable against current main
  • no unresolved review threads

Explicit non-goals

  • no automatic leader promotion/failover
  • no DataRegistry dependency in cluster core
  • no Redis pub/sub synchronization
  • no Hibernate control-plane persistence
  • no application-specific ProxyFeatures/ServerFeatures cluster configuration in this release

@remdui
remdui merged commit 08fb85d into main Sep 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant