Skip to content

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.

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.