# Workflow example Here is an example of a typical ewokstomo workflow: ![Typical workflow showing ReduceDarkFlat feeding ReconstructSlice](reconstruct_from_nx.png) The diagram shows a minimal “slice-from-NXtomo” chain: - External inputs (blue) are dashed into the tasks: the NXtomo file (`nx_path`) feeds both tasks, while `config_dict` and `slice_index` go directly to `ReconstructSlice`. - `ReduceDarkFlat` reads the NXtomo file and saves reduced dark and flat references (`_darks.hdf5` / `_flats.hdf5`) under `references/`. - `ReconstructSlice` consumes the NXtomo file plus the reduced darks/flats and reconstructs a single slice (configurable index) into `slices/_*` under the scan root (see [tasks](../references/tasks.md) for the exact naming pattern). Outputs: - Reduced reference files in `references/`. - A reconstructed slice file in `slices/`, along with the Nabu configuration and processing options returned by the task. Each node has a set of parameters that you can find in [tasks](../references/tasks.md). An ewoks workflow can be represented as a json file: ```json { "directed": true, "multigraph": false, "graph": { "id": "reconstruct_from_nx", "label": "Ewoks workflow 'reconstruct_from_nx'", "schema_version": "1.1" }, "nodes": [ { "id": "reduce_task", "task_type": "class", "task_identifier": "ewokstomo.tasks.reducedarkflat.ReduceDarkFlat" }, { "id": "slice_reconstruction_task", "task_type": "class", "task_identifier": "ewokstomo.tasks.reconstruct_slice.ReconstructSlice" } ], "links": [ { "source": "reduce_task", "target": "slice_reconstruction_task", "data_mapping": [] } ] } ```