Skip to content

Architectural Decision Records

An ADR records one architecturally significant decision: its context, the options considered, the outcome and its consequences. Read them to learn why Hebog is built the way it is; read the architecture overview for what the design is today. New ADRs start from the template. When a decision is replaced, the old ADR is kept and marked as superseded.

ADR Status Summary
ADR-001: Use Architecture Decision Records 🟢 Accepted Use ADRs to explain the rationale behind architecturally significant design choices for future developers and AI assistants
ADR-002: Manage dependencies with uv 🟢 Accepted Use uv to manage project dependencies
ADR-003: Limit Hebog to Rapthor's source-finding contract 🟢 Accepted Qualify the Rapthor feature slice through a pipeline-neutral scientific core
ADR-004: Keep top-level scheduling in Rapthor 🟢 Accepted Keep resource and graph ownership in Rapthor while Hebog exposes explicit executors
ADR-005: Scale large images with hierarchical tiles 🟢 Accepted Bound worker memory with haloed tiles, boundary summaries, and hierarchical reconciliation
ADR-006: Isolate compatibility with versioned internal schemas 🟢 Accepted Keep domain schemas explicit and map legacy products only at outer adapters
ADR-007: Use Zarr for intermediate image storage 🟢 Accepted Keep one maintained intermediate backend and optimize Zarr across all execution tiers
ADR-008: Make the continuum composition tile-native 🟢 Accepted Define the pass structure, halo, ownership, boundary summary and merge of every public continuum stage
ADR-009: Place the reviewed science below the stages 🟢 Accepted Redraw the layering as public_api → stages → science → algorithms and state every layer's allowed imports in one tested table
ADR-010: Scale Hebog independently of its integrations 🟢 Accepted Hebog defines what it needs from a Dask cluster to scale; Rapthor and other callers provide it