public static class RealmSignalsThe four lines a realm and its launcher say to each other over stdio.
Remarks
A realm with no orchestrator still needs a control plane, and this is the smallest one that is not a lie: the process's own standard streams. The launcher writes commands to stdin, the realm writes its state to stdout, and both are things every one of the three placement backends already has — Process directly, Docker through the container's attached streams, Kubernetes through the pod's. Doc 27 § Cost defines L0 as a dedicated server with a lifecycle and no orchestrator intelligence; this is the wire that lifecycle travels on until L1 replaces it with grain calls.
⚠ This is a lifecycle channel, not a management API, and the asymmetry is deliberate. Everything here is a statement about the process as a whole — it is up, drain it, stop it. Nothing player-specific, nothing per-tick and nothing that needs an answer, because the moment stdio carries a request-response protocol somebody has written an RPC layer with no framing, no versioning and no authentication.
The prefix is on every line so that a realm's ordinary logging — which also goes to stdout — cannot be mistaken for a signal, and so that a human reading a container's logs can see the lifecycle in among the noise.
Fields and properties (6)
public const string PrefixWhat every line starts with.
public const string ReadyWritten by the realm when its map is loaded and it is accepting sessions.
public const string DrainingWritten by the realm when it is no longer taking arrivals.
public const string StoppedWritten by the realm as the last thing it does.
public const string DrainRead by the realm: stop taking arrivals and move everyone out at safe moments.
public const string StopRead by the realm: exit now.
Methods (3)
public static string FormatReady(RealmEndpoint endpoint)The line a realm writes when it is ready.
public static bool TryReadReady(string? line, out RealmEndpoint endpoint)Reads a ready line, if that is what this was.
public static string ReadCommand(string? line)Whether a line is one of the commands a realm obeys.
Used by (11)
- DockerPlacementVixen.Live.Placement.Docker
- DockerPlacementTestsVixen.Live.Placement.Docker.Tests
- FakeProcessVixen.Live.Placement.Process.Tests
- KubernetesPlacementVixen.Live.Placement.Kubernetes
- KubernetesPlacementTestsVixen.Live.Placement.Kubernetes.Tests
- LiveVocabularyTestsVixen.Live.Abstractions.Tests
- ProcessPlacementVixen.Live.Placement.Process
- ProcessPlacementTestsVixen.Live.Placement.Process.Tests
- RealmClusterTestsVixen.Live.Realm.Cluster.Tests
- RealmHostVixen.Live.Realm
- RealmHostTestsVixen.Live.Realm.Tests