Skip to content

API layer model

What it is: the layered user-facing surface that starts with evaluate(model=..., data=..., metric=..., ...), centers on Experiment(...), and expands to custom protocols.

When it matters: whenever you are choosing an entry point or documenting a workflow for another user.

What you provide: the smallest layer that expresses the task cleanly.

What Themis provides: compatibility between layers because they all compile to the same snapshot-centric runtime model.

This diagram shows the layers as progressively more explicit authoring surfaces over one shared runtime.

flowchart TD
    A["evaluate(model=..., data=..., metric=..., ...)"] --> D["Experiment(...)"]
    B["Config + CLI"] --> D
    C["Custom protocols"] --> D
    D --> E["RunSnapshot"]
    E --> F["Execution, persistence, inspection"]

The important point is that the user-facing surfaces differ, but the compiled artifact and execution model do not.

What to inspect when it goes wrong: inspect whether the chosen layer is hiding decisions you now need to make explicit.