Technology · Platform

systemd

Every service in my estate that stays up is a locked-down systemd unit; the agent runtime, the credential service and the governance watcher among them.

AgentOS · Inference Fabric · Auth and access planeDeclared service fleetSandboxed public units
A declared fleet
servicetimerinstances of one templatesandboxed public unit
counts illustrative
  • 1 mintimer cadence for container cleanup
  • 2 minpoller cadence in FAFOHive

One declared fleet for the access plane

Auth and access plane holds the operations layer, and I wanted the fleet's behaviour fixed in configuration. A few dozen services sit under one stack target, with explicit ordering, and the unit files and an inventory are versioned with the code.

PartOf cascades carry a dependency's restart through to its dependants, drop-ins make data-store clients wait for the network and declare cascade membership, and Docker-wrapped services are managed like native ones. Routine work such as container cleanup is a timer, visible and controllable on its own rather than a loop hidden in a script.

One restart, as the units see it
Data store
Client unit, PartOf
Client unit, PartOf
Cleanup timer
▲ dependency restarts
Timing is illustrative.

Sandboxing the unit that faces the public

The OAuth server faces the public, so its unit runs sandboxed. Its secrets arrive through LoadCredential, so they sit in no environment variable or readable file.

Memory limit
System-call filter
Strict read-only system
No new privileges
OAuth server

Governance work that runs with nobody present

AgentOS has governance work that must carry on with nobody present. Timers drive its background checks and work-order status reporting. A templated unit runs one bridge instance per activation, so many instances come from one definition, and the member runtime that hosts managed agent seats is its own service.

Nobody at the keyboard
Background checks
Status reporting
Bridge instances
Member runtime
Each bridge segment is one activation of the templated unit; timing is illustrative.

Pipeline services that restart on their own

Inference Fabric is a set of systemd services, each restartable on its own, so one service can be upgraded without draining the pipeline. See Millions of queued items that were not there.

Token-aware broker
Completion service
Vector shard manager
Redis for GPU job control
▲ one service upgraded

Secrets and timers for the social modules

FAFOHive's in-house social modules get their secrets through LoadCredential, and their poller runs as a timer. The reverse proxy in front refuses outside callers on the modules' control endpoints.

I build services to be operated: declared dependencies, sandboxing on anything public, secrets handled by the init system and recurring work in the open.

Outside caller
Internet
✕Reverse proxy
Control endpoint
The poller, on a timer each tick a timer activation, secrets loaded by the init system