Skip to content

Poiesis

A GA4GH TES v1.1.0 implementation for Kubernetes. One container image, one PostgreSQL schema, no broker.

Poiesis high-level overview

Each TES task runs as one Kubernetes Pod wrapped in a Job. Init containers carry the work; a native sidecar records state. A leader-elected controller backstops failures the sidecar can't self-report.

Components

ComponentRole
APIFastAPI service exposing TES under /ga4gh/tes/v1. No scheduler, no reconciler.
TaskPodOne Pod per task: trec (sidecar) → tifexec-0..Ntofack.
TRecIn-pod recorder. Watches the surrounding Pod, writes state and logs.
TCtlLeader-elected Deployment. Reconciles OOMKill, eviction, node loss, unbindable PVC, pending timeout.
PostgresRelational store. Conditional-UPDATE writer makes TRec/TCtl race-correct.

Filer protocols

s3://, http://, https://, file://, and inline content.

What's yours vs what's ours

YouPoiesis
Executor image + commandPod composition, scheduling, lifecycle
Input/output URLsFiler staging and upload
TesResourcesPVC sizing, container resources
Kubernetes 1.29+API, recorder, controller, schema

Executor images run verbatim — no wrapping, no rewriting, no injection.

Released under the Apache License 2.0.