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, or trigger model. Public endpoints are optional HTTP routing surfaces, not invocation semantics.
Command-capable when enabled. If commandsEnabled is true, the daemon runtime can poll the manager and execute registered command handlers.
Cloud controllers. AWS, GCP, and Azure daemon resources run on the managed compute plane and can attach managed HTTP endpoints.
Limits
| Limit | Value | Notes |
|---|---|---|
| Supported platforms | AWS, GCP, Azure, Local, Kubernetes | Controller behavior is platform-specific. |
| Replicas | 1 on Kubernetes | Daemon currently maps to a single-replica Deployment. |
| Public endpoints | HTTP only | Add named endpoints explicitly. |
| Triggers | Not supported | Use Worker for queue, storage, schedule, or HTTP-triggered work. |
| Direct invocation | Not supported | Use Worker for request-response calls. |
| Source daemons on Local | Not supported by the controller | Use a container image. |
| Source daemons on Kubernetes | Not supported by the controller | Use a container image. |
| Commands | Disabled by default | Enable 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
- Daemons run on the managed compute plane.
- Public endpoints use provider load balancing and managed DNS when configured.
- Omit public endpoints for private background processes.
- Managed clustered daemons receive generic topology hints in
ALIEN_DAEMON_PRIVATE_ADDRESS,ALIEN_DAEMON_PEER_PRIVATE_ADDRESSES, andALIEN_DAEMON_NODE_COUNT. Treat these as application-level hints; Alien owns the underlying private network implementation.
Design Decisions
Daemon is process supervision, not a scalable service abstraction. It has no triggers, scaling, or storage model. Use Container when you need replica controls, persistent storage, or multiple service ports.
Commands are opt-in. A daemon without command handlers should not poll the manager for work.