docs(cluster-infrastructure): resolve ClusterInfrastructure-001 — document that the Host owns the Akka bootstrap
This commit is contained in:
@@ -18,6 +18,26 @@ Both central and site clusters.
|
||||
- Support cluster singleton hosting (used by the Site Runtime Deployment Manager singleton on site clusters).
|
||||
- Manage Windows service lifecycle (start, stop, restart) on each node.
|
||||
|
||||
## Implementation Note — Code Placement
|
||||
|
||||
This component is a **design responsibility**, not a single buildable project that
|
||||
contains all of the code. The cluster-infrastructure responsibilities above are
|
||||
realised across two projects:
|
||||
|
||||
- **`src/ScadaLink.ClusterInfrastructure`** owns the cluster **configuration model**:
|
||||
the `ClusterOptions` POCO (seed nodes, roles, remoting/gRPC ports, failure-detection
|
||||
timings, split-brain settings) bound from `appsettings.json` via the Options pattern.
|
||||
- **`src/ScadaLink.Host`** owns the cluster **bootstrap and runtime wiring**: it
|
||||
builds the Akka.NET HOCON from `ClusterOptions`, starts the `ActorSystem`,
|
||||
configures the keep-oldest split-brain resolver (`down-if-alone = on`), wires
|
||||
`CoordinatedShutdown` into the service lifecycle, and provides active-node /
|
||||
cluster-membership health checks. See `Component-Host.md` (REQ-HOST-*) for detail.
|
||||
|
||||
This split is deliberate — the Host is the single deployable binary and the only
|
||||
project that performs Akka.NET bootstrap, so the cluster bring-up lives there
|
||||
alongside role-based component registration. The `ClusterInfrastructure` project
|
||||
remains the home of the configuration contract that the Host consumes.
|
||||
|
||||
## Cluster Topology
|
||||
|
||||
### Central Cluster
|
||||
|
||||
Reference in New Issue
Block a user