faas-flow: github.com/s8sg/faas-flow Index | Files | Directories

package faasflow

import "github.com/s8sg/faas-flow"


Package Files

faas_operation.go workflow.go


var (
    BLANK_MODIFIER = func(data []byte) ([]byte, error) { return data, nil }
var (
    // Execution specify a edge doesn't forwards a data
    // but rather mention a execution direction
    Execution = InvokeEdge()

type BranchOption Uses

type BranchOption func(*BranchOptions)

func Aggregator Uses

func Aggregator(aggregator sdk.Aggregator) BranchOption

Aggregator aggregates all outputs into one

func Forwarder Uses

func Forwarder(forwarder sdk.Forwarder) BranchOption

Forwarder encodes request based on need for children vertex by default the data gets forwarded as it is

func InvokeEdge Uses

func InvokeEdge() BranchOption

InvokeEdge denotes a edge doesn't forwards a data, but rather provides only an execution flow

type BranchOptions Uses

type BranchOptions struct {
    // contains filtered or unexported fields

BranchOptions options for branching in DAG

type Context Uses

type Context sdk.Context

type Dag Uses

type Dag struct {
    // contains filtered or unexported fields

func NewDag Uses

func NewDag() *Dag

NewDag creates a new dag separately from pipeline

func (*Dag) Append Uses

func (this *Dag) Append(dag *Dag)

Append generalizes a seperate dag by appending its properties into current dag. Provided dag should be mutually exclusive

func (*Dag) ConditionalBranch Uses

func (this *Dag) ConditionalBranch(vertex string, conditions []string, condition sdk.Condition,
    options ...BranchOption) (conditiondags map[string]*Dag)

ConditionalBranch composites multiple dags as a sub-dag which executes for a conditions matched and returns the set of dags based on the condition passed

func (*Dag) Edge Uses

func (this *Dag) Edge(from, to string, opts ...BranchOption)

Edge adds a directed edge between two vertex as <from>-><to>

func (*Dag) ForEachBranch Uses

func (this *Dag) ForEachBranch(vertex string, foreach sdk.ForEach, options ...BranchOption) (dag *Dag)

ForEachBranch composites a sub-dag which executes for each value It returns the sub-dag that will be executed for each value

func (*Dag) Node Uses

func (this *Dag) Node(vertex string, options ...BranchOption) *Node

Node adds a new vertex by id

func (*Dag) SubDag Uses

func (this *Dag) SubDag(vertex string, dag *Dag)

SubDag composites a seperate dag as a node.

type DataStore Uses

type DataStore sdk.DataStore

type FaasOperation Uses

type FaasOperation struct {
    // FaasOperations
    Function       string   // The name of the function
    HttpRequestUrl string   // HttpRequest Url
    Mod            Modifier // Modifier

    // Optional Options
    Header map[string]string   // The HTTP call header
    Param  map[string][]string // The Parameter in Query string

    FailureHandler FuncErrorHandler // The Failure handler of the operation
    Requesthandler ReqHandler       // The http request handler of the operation
    OnResphandler  RespHandler      // The http Resp handler of the operation

func (*FaasOperation) Encode Uses

func (operation *FaasOperation) Encode() []byte

func (*FaasOperation) Execute Uses

func (operation *FaasOperation) Execute(data []byte, option map[string]interface{}) ([]byte, error)

func (*FaasOperation) GetHeaders Uses

func (operation *FaasOperation) GetHeaders() map[string]string

func (*FaasOperation) GetId Uses

func (operation *FaasOperation) GetId() string

func (*FaasOperation) GetParams Uses

func (operation *FaasOperation) GetParams() map[string][]string

func (*FaasOperation) GetProperties Uses

func (operation *FaasOperation) GetProperties() map[string][]string

type FuncErrorHandler Uses

type FuncErrorHandler func(error) error

FuncErrorHandler the error handler for OnFailure() options

type Modifier Uses

type Modifier func([]byte) ([]byte, error)

Modifier definition for Modify() call

type Node Uses

type Node struct {
    // contains filtered or unexported fields

func (*Node) AddOperation Uses

func (node *Node) AddOperation(operation sdk.Operation) *Node

AddOperation adds an Operation to the given vertex

func (*Node) Apply Uses

func (node *Node) Apply(function string, opts ...Option) *Node

Apply adds a new function to the given vertex

func (*Node) Modify Uses

func (node *Node) Modify(mod Modifier) *Node

Modify adds a new modifier to the given vertex

func (*Node) Request Uses

func (node *Node) Request(url string, opts ...Option) *Node

Request adds a new http Request to the given vertex

type Option Uses

type Option func(*Options)
func Header(key, value string) Option

Header Specify a header in a http call

func OnFailure Uses

func OnFailure(handler FuncErrorHandler) Option

OnFailure Specify a function failure handler

func OnReponse Uses

func OnReponse(handler RespHandler) Option

OnResponse Specify a response handler for function and callback

func Query Uses

func Query(key string, value ...string) Option

Query Specify a query parameter in a http call

func RequestHandler Uses

func RequestHandler(handler ReqHandler) Option

RequestHandler Specify a request handler for function and callback request

type Options Uses

type Options struct {
    // contains filtered or unexported fields

Options options for operation execution

type ReqHandler Uses

type ReqHandler func(*http.Request)

Reqhandler definition for RequestHdlr() option on operation

type RespHandler Uses

type RespHandler func(*http.Response) ([]byte, error)

RespHandler definition for OnResponse() option on operation

type StateStore Uses

type StateStore sdk.StateStore

type Workflow Uses

type Workflow struct {
    // contains filtered or unexported fields

func GetWorkflow Uses

func GetWorkflow(pipeline *sdk.Pipeline) *Workflow

GetWorkflow initiates a flow with a pipeline

func (*Workflow) Dag Uses

func (flow *Workflow) Dag() *Dag

Dag provides the workflow dag object

func (*Workflow) Finally Uses

func (flow *Workflow) Finally(handler sdk.PipelineHandler)

Finally sets an execution finish handler routine it will be called once the execution has finished with state either Success/Failure

func (*Workflow) GetPipeline Uses

func (flow *Workflow) GetPipeline() *sdk.Pipeline

GetPipeline expose the underlying pipeline object

func (*Workflow) OnFailure Uses

func (flow *Workflow) OnFailure(handler sdk.PipelineErrorHandler)

OnFailure set a failure handler routine for the pipeline

func (*Workflow) SetDag Uses

func (flow *Workflow) SetDag(dag *Dag)

SetDag apply a predefined dag, and override the default dag

func (*Workflow) SyncNode Uses

func (flow *Workflow) SyncNode(options ...BranchOption) *Node

SyncNode adds a new vertex named Sync



Package faasflow imports 9 packages (graph). Updated 2020-01-20. Refresh now. Tools for package owners.