@startuml
'https://plantuml.com/sequence-diagram
title Runtime Execution Plan


autonumber 1
!include puml/EfestoInventorySD.puml

participant ExecutionServiceEntry #limegreen

Input_provider -> Runtime_Manager: execute (EfestoInput)
Runtime_Manager -> KieRuntimeService: canManageInput (EfestoInput)
return true
Runtime_Manager -> KieRuntimeService: getStepServiceMap (EfestoInput)
return stepServiceMap (OrderedMap)

group executionServiceEntry [loop until final output]
Runtime_Manager -> KieRuntimeService: canManageInput (EfestoInput/ExecutionServiceEntry)
return: true
Runtime_Manager -> KieRuntimeService: evaluateInput (EfestoInput/ExecutionServiceEntry)
KieRuntimeService -> ExecutionServiceEntry: evaluateInput (EfestoInput/ExecutionServiceEntry)
return: Optional<EfestoOutput>
KieRuntimeService --> Runtime_Manager: Optional<EfestoOutput>
end

Runtime_Manager -> Input_provider: Optional<EfestoOutput>

@enduml