Skip to content

Architecture

Brane uses a federated architecture where a central orchestrator coordinates work across distributed worker nodes. Each node runs independently and enforces its own policies.

ServicePurpose
brane-apiREST API for package management and workflow submission
brane-drvWorkflow driver — compiles and executes BraneScript
brane-plrPlanner — decides where to run each task
brane-prxProxy for cross-domain communication
ScyllaDBStores package metadata, workflow state, execution history
ServicePurpose
brane-jobExecutes package containers locally
brane-regLocal package registry and cache
brane-chkPolicy checker — enforces eFLINT policies
brane-prxHandles communication with central and other workers

Policy checks happen at multiple levels:

  • Pre-execution: The planner checks if a task is likely to be allowed
  • At the worker: brane-chk performs the definitive policy check using eFLINT
  • Data transfer: Both source and destination policies are checked when data moves

For environments behind firewalls, optional proxy nodes relay traffic between domains:

All cross-node communication uses gRPC with mutual TLS (mTLS) authentication.

ModelDescriptionBest For
Single-machineAll nodes on one machine via Docker ComposeDevelopment, testing
Multi-machineEach node on a separate machineProduction
HybridCentral + some workers co-located, others remoteMixed environments