Skip to main content

Execution Modules (Adapters)

Module contract

  • Base: VModule implements Module.
  • Map I/O: MapIOModule for modules that read/write state maps.
  • Branching: BranchingModule returns an outcome to drive control flow.

Loading modules

  • Each ExecModule.className is resolved to a Spring bean or reflectively instantiated.
  • Properties are copied from ExecModule into the module instance before execution.

Parallel groups

  • Add { "parallel": true, "parallelGroup": "A" } in moduleData to run as a group.
  • Outcomes are aggregated with priority: FAILURE > CONDITIONAL > DEFAULT.

Authoring new modules

  • Annotate with @Component and @VModuleAware.
  • Implement MapIOModule to participate in state passing and branching.
  • Keep side effects idempotent and log meaningful metrics.