Assuming outputs
val output1 = stream.out{ }
val output2 = stream.out{ }
Initiate the overseer
val execution =
// single threaded serial execution
// for a set of outputs
listOf(output1, output2).serialExecution()
// or for singular output
output1.serialExecution()
// multithreaded parallel execution
// for a set of outputs
listOf(output1, output2).parallelExecution(threads = 2, partitions = 2)
// or for singular output
output1.parallelExecution(threads = 2, partitions = 2)
//distributed execution
// for a set of outputs
listOf(output1, output2).distributedExecution(facilitators = ..., partitions = 2)
// or for singular output
output1.distributedExecution(facilitators = ..., partitions = 2)
And then execute it
// asynchronously
val future = execution.async()
// or synchronously
execution.sync()
Assuming outputs
Initiate the overseer
And then execute it