Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Executors are now Observable #8

Merged
merged 19 commits into from
Oct 19, 2018
Merged

Executors are now Observable #8

merged 19 commits into from
Oct 19, 2018

Conversation

PetrosPapapa
Copy link
Member

This is partially addressing #5

Executors must now implement (or mixin) a PiObservable interface. Multi-actor executors (like AkkaExecutor and KafkaExecutor) must rely on some sort of Event Stream.

Executors must also publish appropriate PiEvents (see WorkflowFM-PEW/src/com/workflowfm/pew/PiEventHandler.scala) when they happen.

Finally there is a change in the ProcessExecutor interface to enable the management of such listeners. Executors must now implement 2 methods, init and start (see WorkflowFM-PEW/src/com/workflowfm/pew/execution/ProcessExecutor.scala).

The currently included executors have all been updated to reflect these changes.

PetrosPapapa and others added 16 commits September 24, 2018 21:15
... but the connections to the simulation environment run much deeper.
Updated the executors accordingly:
MultiStateExecutor
AkkaExecutor
MongoExecutor

Also fixed MultiStateExecutor not retrieving process instances
correctly. However, it is still failing the unit tests.
This is work in progress - code is broken

AkkaExecutor is now complying, but there is more to do and the tests are
broken.

See issue #5 for more information
We need the notion of a FutureExecutor for this one.
Added X separates this from older implementation until we have finished
editing all previous references.

Improved typing of PiEventHandlerFactory.
Now working on the unit tests.

We don't really need a separate FutureExecutor. We can include the
corresponding method in ProcessExecutor just fine!
MultiStateExecutor still fails sometimes - some unresolved race
conditions probably.
The "run" method returns the ID after it tries some initial
calculations. This means that events may be published before the promise
executor has had a chance to subscribe.

e.g. exceptions thrown during "run" will not be caught
Feeling much better about the ProcessExecutor trait now. Quite a few
changes made to the implemented executors to make sure they comply.

MongoExecutor needs testing.

Introduced issue #7
Fixed all the errors in the simulation code (mainly due to references to
FutureExecutor).
@PetrosPapapa PetrosPapapa added the feature New feature or request label Oct 9, 2018
@PetrosPapapa PetrosPapapa merged commit 167a0c1 into master Oct 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant