Loops and subprojects
Catenivo provides two different ways to reuse processing logic: loops inside a project and the Run project operator.
Iterative workflows
A loop reruns a subgraph until features leave through completion ports or a limit is reached.
Main safeguards include:
- maximum iteration count;
- maximum processed-feature volume;
- memory and work quotas.
Outputs distinguish completed, incomplete and rejected features.
Limits
Loops are limited to two levels. Readers/writers, HTTP calls, subprojects, multi-input joins and some aggregations are not available inside a loop.
There is no cache or partial execution inside the loop.
Run project
The Run project operator starts another .etl file for each incoming feature.
It can pass parameters from:
- fixed values;
- incoming attributes;
- parent-project parameters, depending on configuration.
Sequential mode starts one instance after another. Parallel mode allows a bounded number of simultaneous instances while returning features in input order.
Recommended organization
Use a subproject to isolate reusable processing or an autonomous business step. Use a loop when the same subgraph must progressively converge over the same features.
Avoid unbounded project recursion: each level should have an explicit purpose and limits.