Skip to content

Deployment Boundaries

Core is a scientific library with a command interface, not a long-running control plane. It can run inside a workstation process, batch job, notebook, worker, or container, while Runtime owns multi-step execution, durable run state, replay, provider coordination, and operator-facing services.

flowchart LR
    U[Python or scientific CLI] --> C[Core scientific operation]
    R[Runtime workflow] --> C
    I[Versioned inputs and references] --> C
    C --> O[Typed results and artifacts]
    O --> R
    R --> S[Run state, replay, and delivery]

Supported execution contexts

Direct Core execution is appropriate when one process can own the complete operation and the caller can provide explicit inputs, parameters, references, and output paths. Examples include format conversion, sequence processing, FDR review, matrix construction, study validation, or a bounded scientific report.

Use Runtime when work requires:

  • durable run identifiers, checkpoints, retries, or resume;
  • a dependency graph across several scientific operations;
  • provider selection or external tool execution;
  • artifact ledgers, replay, telemetry, or operator APIs;
  • concurrent work whose state must survive process failure;
  • environment capture and cross-run comparison.

Runtime may invoke Core, but it does not redefine Core's scientific algorithms or data meaning.

Container and batch-job posture

A Core container should pin the package, Python version, optional format dependencies, and external reference assets required by its command. Mount inputs read-only where practical and write results to a dedicated artifact path. Capture stdout, stderr, exit status, warnings, parameters, and input fingerprints.

Do not infer reproducibility from an image tag alone. Results also depend on reference databases, search-engine outputs, instrument exports, thresholds, random seeds where applicable, and the exact artifact contract. Immutable image digests and immutable data references solve different parts of the problem.

Failure ownership

Failure Owner
invalid sequence, scientific parameter, contrast, or evidence relationship Core
unsupported or malformed scientific file Core importer, with explicit parser diagnostics
missing optional Parquet dependency environment packaging
queue loss, retry exhaustion, checkpoint recovery, or replay mismatch Runtime
missing source file, storage outage, resource quota, or secret deployment infrastructure
inappropriate biological conclusion from a valid result Intelligence or the consuming reviewer

Boundary test

If a proposed deployment feature changes scientific output for the same typed inputs, it belongs in Core. If it changes when, where, how often, or under which operational recovery policy the same operation runs, it belongs in Runtime or infrastructure.