fission / fission-workflows

Workflows for Fission: Fast, reliable and lightweight function composition for serverless functions
Apache License 2.0
371 stars 42 forks source link

Extract resolver and parser implementations from workflow api #114

Closed erwinvaneyk closed 6 years ago

erwinvaneyk commented 6 years ago

These packages did not fit this package, causing unstructured (and potentially cyclic dependencies). This change...

This change improves the naming and the exposed API of both packages. ResolvedTask has been renamed to FnRef; indicating the immutablity, and function specific nature of this data structure. The format of the FnRef has been formalized to be more or less consistent with the URI standard. The url package was not used to avoid the confusion how the FnRef is used. So instead the fnref implementation currently is a subset of the functionality offered by the url package.

The resolver interface has been split into two interfaces: resolver and runtimeResolver. The RuntimeResolver is a runtime-specific resolver. It is not aware of in what runtime context it is being run. The Resolver interface is an abstraction level higher, and is aware of the runtime, in order to resolve a target function to a unique function reference.

Additionally this change adds the -v option to the glide install instructions to avoid nested vendor issues.