Core Concepts
Core Concepts
Section titled “Core Concepts”Nodes and Domains
Section titled “Nodes and Domains”A Brane deployment spans multiple nodes across different domains (organizations). Each domain controls its own data and policies.
| Node Type | Purpose |
|---|---|
| Central | Orchestrates workflows, hosts the API and package registry |
| Worker | Executes tasks, hosts local data, enforces policies |
| Proxy | Handles cross-domain networking (optional) |
Packages
Section titled “Packages”A package wraps your code (in any language) inside a Docker container, along with metadata describing its functions. Packages are defined using a container.yml file.
name: my_analysisversion: 1.0.0kind: ecufiles: - analyze.pyentrypoint: kind: task exec: analyze.pyactions: 'run_analysis': command: args: - run_analysis input: - name: dataset_path type: string output: - name: result type: stringWorkflows
Section titled “Workflows”Workflows are written in BraneScript and describe what to compute, not where. Brane decides where to run each step based on data location and policies.
import my_analysis;let data := new Data { name := "patient_records" };let result := run_analysis(data);println(result);Policies
Section titled “Policies”Policies define rules for data access at each domain, written in eFLINT. They enforce constraints like “raw data must not leave this domain” or “only approved algorithms may access sensitive datasets.”
| Role | Responsibility | Primary Tool |
|---|---|---|
| System Administrator | Deploy and manage nodes | branectl |
| Software Developer | Build packages | brane CLI |
| Scientist | Write and execute workflows | brane CLI / REPL |
| Policy Expert | Define data access policies | eFLINT / Policy GUI |
Data Flow
Section titled “Data Flow”The central design principle: computation moves to the data, not the other way around.
- The planner identifies where the data lives
- The package container is sent to that worker node
- Computation runs locally — data never leaves
- Only approved results are returned