Execution Modules (Adapters)
Module contract
- Base:
VModule
implementsModule
. - 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" }
inmoduleData
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.