Choose an interface¶
Start from what your integration does during an analysis.
| You are adding… | Implement | Public import |
|---|---|---|
| live inference, a hosted model call, or a model-specific scoring plan | ModelPlugin |
altar.models |
| precomputed per-variant evidence | AnnotationSource |
altar.sources |
| one-to-many variant/regulatory-element-to-gene evidence | VariantGeneLinkSource |
altar.sources |
| persistent canonical variant–gene evidence | VariantGeneLinkStore |
altar.sources |
| container task execution on a compute system | ExecutionBackend |
altar.execution |
| persistent model-score storage and result assembly | ScoreStore |
altar.results |
| file/object movement | Storage |
altar.execution |
| token authentication (provisional) | AuthProvider |
altar.access |
| asynchronous job handoff (provisional) | JobQueue |
altar.execution |
AuthProvider and JobQueue are provisional: they are importable, but
they lack a public production adapter and an Altar consumer, so their shape may change in a minor release.
Keep integrations composable¶
A scientific binding produces backend-neutral plans or evidence. An infrastructure implementation consumes a public interface. Do not create separate integrations for every model × compute × storage combination.
For example, a Cherimoya binding should work with local Docker, Modal, and Kubernetes through the same plan.
An E2G importer should emit VariantGeneEvidenceRecord into VariantGeneLinkStore rather than becoming
OpenTargetsPostgresSource, EncodeRE2GParquetSource, and similar source × database combinations with
duplicated scientific normalization.
Model or source?¶
Ask whether inference occurs in this analysis:
- Yes: use a model binding and declare how work runs.
- No, values already exist: use an annotation or relation source and preserve the release identity.
The upstream origin of a dataset does not decide its Altar interface. Precomputed neural-network scores are still lookup evidence in an analysis that does not execute the network.
Definition of a supported extension¶
An interface implementation is ready when it has:
- one real consumer or integration;
- complete schemas and provenance behavior;
- missing-data and error semantics;
- entry-point registration;
- the matching Altar conformance suite;
- scientific and operational documentation;
- isolation from private host-application imports.