Skip to content

Initial prototype#2

Merged
erwinvaneyk merged 24 commits intomasterfrom
prototype
Aug 7, 2017
Merged

Initial prototype#2
erwinvaneyk merged 24 commits intomasterfrom
prototype

Conversation

@erwinvaneyk
Copy link
Copy Markdown
Member

This PR contains the first prototype (as demonstrated/discussed last Friday), with the following notable features:

  • Core components implemented:
    • API (Server): both internal and external (gRPC and JSON) API.
    • Event Store (using NATS streaming) : Stores events, only actual stateful component.
    • Projector : constructing state from events.
    • Controller : manages workflow invocations
    • Scheduler : makes decisions based on the current state of a workflow invocation.
    • Fission Proxy : a separate server that ensures that the workflow engine conforms to the environment/function interface of Fission.
    • Parser: parses workflows into workflows that can be executed (e.g. resolves function names to uids)
  • Initial data format for workflows, which supports declaration of tasks with dependency
  • A hacked together, deployable binary under ./cmd/workflow-engine/
  • Build and deploy (to kubernetes) scripts in ./build/
  • Working example of a simple (sequential) workflow. To run:
    1. build & deploy fission which supports fission-workflow (currently there is a quick and dirty integration available: https://github.com/erwinvaneyk/fission/tree/fission-workflow-integration)
    2. Deploy fission-nats.yaml (currently the only 'additional' dependency of Fission-workflow
    3. build & deploy fission-workflow
    4. run ./examples/simple/deploy.sh which deploys functions and workflows
    5. invoke one of the workflows just like you would invoke a Fission function. For example, to request advice from the Fortunewhale: curl $FISSION_ROUTER/fission-function/fortunewhale
  • Some (outdated) documentation is available under ./Docs/

Fyi @soamvasani

@erwinvaneyk erwinvaneyk merged commit 09c6b59 into master Aug 7, 2017
@erwinvaneyk erwinvaneyk deleted the prototype branch August 7, 2017 00:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant