Skip to content

21. Data Flow (Projects → Processes → Jobs → Tasks)

This outlines the lifecycle of the core domain entities and how UI, reducers, and sagas interact.

Entities - Projects → contain Processes; Projects reference OMERO images via omeroIds and file_names. - Processes → pipeline graphs (jobs tree) attached to a Project. - Jobs → executable steps with tasks and params. - Tasks → results and visualizations (Vitessce / images / metrics).

Fetch & Navigate - Projects list/detail: - Saga: src/redux/modules/projects/index.js:72-108 - UI entry: src/components/ProjectFiles.js:1-27 - Processes for a project: - Sagas: src/redux/modules/processes/index.js:144-176,178-206 - UI list: src/components/Project/Processes/index.jsx:1-120,216-247 - Open process → graph: - Jobs by process: src/redux/modules/jobs/index.js:240-259 - Graph creation: src/components/Project/Process/index.jsx:80-170,842-908

Create/Link/Update/Delete - Create process / update / delete: - src/redux/modules/processes/index.js:214-236,236-258,260-279 - Create job + link into process tree: - src/redux/modules/processes/index.js:282-318 - Link existing job (createConn): - src/redux/modules/processes/index.js:220-246 - Update/delete job: - src/redux/modules/processes/index.js:320-358,360-385

Run/Restart/Refresh - Start all jobs for a process: jobs.actions.startProcess(processId) - Saga: src/redux/modules/jobs/index.js:286-309 - Refresh jobs + re-fetch process for graph consistency: - src/redux/modules/jobs/index.js:246-259,250-257 - UI refresh: src/components/Project/Process/index.jsx:792-808

Results & Visualizations - Results page loads process for visualization + tasks derived data: - src/components/Project/Results/index.jsx:200-223,388-391 - Vitessce configs per task: - Sagas/Selectors: src/redux/modules/tasks/index.js:291-299,625-641 - Zarr structure/cluster labels: - src/redux/modules/tasks/index.js:652-700

Files & OMERO - Files (project or global): src/components/Files/index.jsx:1-200 - OMERO images for a project: - Sagas: src/redux/modules/omero/index.js:164-197 - Used in Process forms & Results image overlays.

Notes - Use selectors for derived/memoized access. - Keep UI stateless where possible; derive from Redux.