Advanced Topics

Core Concepts

How dxflow is structured — architecture, deployment patterns, core components, and the security model

This page explains how dxflow is put together: its layered architecture, the two deployment patterns, the components every engine exposes, and the permission model.

Architecture

dxflow follows a "compute-first" design: the engine runs close to your workloads, so there's no central control layer moving data around. It's organized in four layers:

Infrastructure

Physical or virtual machines, cloud instances, edge devices

Engine

The dxflow daemon — core services, CLI, and APIs

Runtime

Docker, Podman, Singularity, or Apptainer

Application

Your workloads, models, and data pipelines

Deployment patterns

dxflow supports two patterns:

PatternWhat it isBest for
Node-Embedded (recommended)Every compute node runs its own engine, with no control layer in betweenHPC clusters, edge, minimal overhead, lowest latency
Federated MasterOne master engine coordinates agents across many nodesMulti-cloud, centralized monitoring, enterprise governance

Node-Embedded is the most common pattern — it eliminates network hops between the engine and the compute. Because dxflow is a self-contained binary, it runs alongside any scheduler you already have rather than replacing it:

  • Slurm / PBS / LSF: start dxflow from a prolog script when a job allocation begins
  • Kubernetes / Nomad: run the engine as a DaemonSet or side-car
  • Docker Compose / Podman: include the dxflow container in your compose file
  • Spark / Ray / AWS Batch: bundle the engine via user-data on each executor

In the Federated Master pattern, a single instance acts as a control plane that orchestrates the agents running on each node.

Core components

Every engine — regardless of deployment pattern — exposes the same interfaces:

InterfaceAccessPurpose
REST APIhttp://localhost:<port>/apiProgrammatic access, WebSocket for live updates, OpenAPI spec
CLIdxflow <cmd>Local and remote command execution, scriptable for CI/CD
Web consolehttp://localhost:<port>/Visual management, live dashboards, mobile-responsive

It manages four kinds of resources:

  • Workflows — containerized apps defined in Docker Compose-style YAML, with full lifecycle control, resource limits (CPU/memory/GPU), networking, and volumes. See Workflows.
  • Shells — interactive terminal sessions on the engine host, with TTY support and live reconnect. See Shells.
  • Artifacts — file storage on the engine volume: upload/download, directories, zip/unzip, and signed sharing links. See Artifacts.
  • Bridges & proxies — connect engines and expose internal services through authenticated WebSocket tunnels. See Tunneling.

Security model

Authentication

dxflow uses RSA key-pair authentication: generate a key, register its public key with the engine, and sign in with the private key. Multiple keys can be registered, each with its own permissions. See Authentication.

Permissions

Permissions are composable — combine functional permissions with modifiers to build custom access levels.

Functional (combinable): SHELL, ARTIFACT, WORKFLOW, PROXY, BRIDGE, RUNTIME

Modifiers:

  • READ_ONLY — blocks create/modify/delete; viewing and monitoring only. Combinable with any functional permission.
  • MASTER — full administrative access, including key and user management. Includes all other permissions.

Examples:

RolePermissionsCan do
DeveloperSHELL + ARTIFACT + WORKFLOWShells, files, and workflows — no proxy, bridge, or admin
Read-only monitorWORKFLOW + SHELL + READ_ONLYView status and logs; no changes
System adminMASTEREverything, including key management
Default: new users receive PROXY + BRIDGE + SHELL + ARTIFACT + RUNTIME + WORKFLOW — full functionality without admin privileges or read-only restrictions.

Network

All communication is TLS-encrypted, with automatic certificate generation. Local communication uses Unix domain sockets, and the engine works alongside your existing firewall and network policies.