# Core concepts ## Task-oriented processing Each processing step is implemented as an Ewoks task class in `ewoksscxrd.tasks`. Tasks consume named inputs and produce named outputs, so they can be composed in JSON workflow graphs. Main task families in `ewoksscxrd`: - Conversion: `Eiger2Crysalis`, `Lima2Thresholding` - CrysAlis file generation: `CreateIniFiles`, `CreateSetCcdFiles`, `CreateParFiles`, `CreateRunFiles` - Data products: `AverageFrames`, `TiffFiles`, `DataPortal` ## Workflow execution model Workflows are JSON directed graphs where each node identifies a task class and links map outputs to downstream inputs. You can execute these workflows with `ewoks execute`, or from Python via the Ewoks API. Refer to documentation. ## ESRF specific data layout assumptions For now `Eiger2crysalis` assume ESRF-style HDF5 image dataset path: `/entry_0000/measurement/data`, while `TiffFiles` assumes processed output conventions based on `PROCESSED_DATA/...`. You may need to reimplement those to get your workflow going if you have non-ESRF data.