Docs

Behavior & Limits

Supported platforms, lifecycle guarantees, and limits for Alien Daemons.

Guarantees

Resident process. A daemon is started and kept running by the platform controller. If it exits, the underlying Local or Kubernetes runtime is responsible for restart behavior.

No request-response API. Daemon has no invocation API, timeout, trigger model, public URL, or ingress mode.

Command-capable when enabled. If commandsEnabled is true, the daemon runtime can poll the manager and execute registered command handlers.

Cloud fail-fast. AWS, GCP, and Azure daemon resources fail during preflight before provider calls.

Limits

LimitValueNotes
Supported platformsLocal, KubernetesAWS/GCP/Azure are intentionally blocked.
Replicas1 on KubernetesDaemon currently maps to a single-replica Deployment.
Public ingressNot supportedUse Container for long-running services with ports.
TriggersNot supportedUse Worker for queue, storage, schedule, or HTTP-triggered work.
Direct invocationNot supportedUse Worker for request-response calls.
Source daemons on LocalNot supported by the controllerUse a container image.
Source daemons on KubernetesNot supported by the controllerUse a container image.
CommandsDisabled by defaultEnable explicitly with .commandsEnabled(true).

Platform Notes

Local

  • The controller extracts the daemon container image, starts it through the local runtime manager, and checks health every 5 seconds while ready.
  • Linked resource bindings and standard Alien environment variables are injected into the process environment.
  • Delete stops and removes the local daemon process state.

Kubernetes / On-Prem

  • The controller creates a Kubernetes Deployment with one replica.
  • The pod restart policy is Always.
  • Linked resource bindings are injected as environment variables. Secret values are moved into Kubernetes Secrets where the binding extraction code supports it.
  • The current controller rejects source-based daemon config; deploy an image.

AWS, GCP, Azure

  • No cloud daemon controllers are registered.
  • Preflight rejects daemon resources before any provider API calls.
  • Cloud support is not implemented yet. AWS, GCP, and Azure daemon resources are rejected before provider API calls.

Design Decisions

Daemon is last-resort process supervision, not a service abstraction. It has no ports, ingress, scaling, storage, or trigger model. Those belong to Container and Worker.

Cloud support is intentionally blocked today. Daemon should not silently fall back to a Worker or Container on AWS, GCP, or Azure. When cloud support is added, it should preserve daemon semantics: one always-on process with no ingress, triggers, or autoscaling.

Commands are opt-in. A daemon without command handlers should not poll the manager for work.

On this page