nestedfanoutflowapi

package
v1.37.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const Hostname = "nestedfanoutflow.verify"

Hostname is the default hostname of the microservice.

Variables

View Source
var (
	// HINT: Insert endpoint definitions here
	TaskA    = Def{Method: "POST", Route: ":428/task-a"}    // MARKER: TaskA
	NormalB  = Def{Method: "POST", Route: ":428/normal-b"}  // MARKER: NormalB
	TaskX    = Def{Method: "POST", Route: ":428/task-x"}    // MARKER: TaskX
	TaskY    = Def{Method: "POST", Route: ":428/task-y"}    // MARKER: TaskY
	TaskZ    = Def{Method: "POST", Route: ":428/task-z"}    // MARKER: TaskZ
	TaskW    = Def{Method: "POST", Route: ":428/task-w"}    // MARKER: TaskW
	TaskJ    = Def{Method: "POST", Route: ":428/task-j"}    // MARKER: TaskJ
	RunInner = Def{Method: "POST", Route: ":428/run-inner"} // MARKER: RunInner
	Inner    = Def{Method: "GET", Route: ":428/inner"}      // MARKER: Inner
	Nested   = Def{Method: "GET", Route: ":428/nested"}     // MARKER: Nested
)

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a lightweight proxy for making unicast calls to the microservice.

func NewClient

func NewClient(caller service.Publisher) Client

NewClient creates a new unicast client proxy to the microservice.

func (Client) ForHost

func (_c Client) ForHost(host string) Client

ForHost returns a copy of the client with a different hostname to be applied to requests.

func (Client) WithOptions

func (_c Client) WithOptions(opts ...pub.Option) Client

WithOptions returns a copy of the client with options to be applied to requests.

type Def

type Def struct {
	Method string
	Route  string
}

Def is the routing identity of an endpoint exposed by this microservice.

func (Def) URL

func (d Def) URL() string

URL is the full URL of the endpoint, joined with the package-level Hostname.

type Executor

type Executor struct {
	// contains filtered or unexported fields
}

Executor runs tasks and workflows synchronously, blocking until termination. It is primarily intended for integration tests.

func NewExecutor

func NewExecutor(caller service.Publisher) Executor

NewExecutor creates a new executor proxy to the microservice.

func (Executor) ForHost

func (_c Executor) ForHost(host string) Executor

ForHost returns a copy of the executor with a different hostname to be applied to requests.

func (Executor) Inner

func (_c Executor) Inner(ctx context.Context) (innerResult int, status string, err error)

Inner creates and runs the Inner workflow.

func (Executor) Nested

func (_c Executor) Nested(ctx context.Context) (finalResult string, status string, err error)

Nested creates and runs the Nested workflow.

func (Executor) NormalB

func (_c Executor) NormalB(ctx context.Context) (normalResult string, err error)

NormalB creates and runs the NormalB task.

func (Executor) TaskA

func (_c Executor) TaskA(ctx context.Context) (started bool, err error)

TaskA creates and runs the TaskA task.

func (Executor) TaskJ

func (_c Executor) TaskJ(ctx context.Context, normalResult string, innerResult int) (finalResult string, err error)

TaskJ creates and runs the TaskJ task.

func (Executor) TaskW

func (_c Executor) TaskW(ctx context.Context, inner int) (innerResult int, err error)

TaskW creates and runs the TaskW task.

func (Executor) TaskX

func (_c Executor) TaskX(ctx context.Context) (innerStarted bool, err error)

TaskX creates and runs the TaskX task.

func (Executor) TaskY

func (_c Executor) TaskY(ctx context.Context) (innerOut int, err error)

TaskY creates and runs the TaskY task.

func (Executor) TaskZ

func (_c Executor) TaskZ(ctx context.Context) (innerOut int, err error)

TaskZ creates and runs the TaskZ task.

func (Executor) WithFlowOptions added in v1.32.0

func (_c Executor) WithFlowOptions(flowOptions *workflow.FlowOptions) Executor

WithFlowOptions returns a copy of the executor that creates workflows with the given flow options (priority, fairness key and weight). It has no effect on task execution.

func (Executor) WithInputFlow

func (_c Executor) WithInputFlow(flow *workflow.Flow) Executor

WithInputFlow returns a copy of the executor with an input flow to use for task execution. The input flow's state is available to the task in addition to the typed input arguments.

func (Executor) WithOptions

func (_c Executor) WithOptions(opts ...pub.Option) Executor

WithOptions returns a copy of the executor with options to be applied to requests.

func (Executor) WithOutputFlow

func (_c Executor) WithOutputFlow(flow *workflow.Flow) Executor

WithOutputFlow returns a copy of the executor with an output flow to populate after task execution. The output flow captures the full flow state including control signals (Goto, Retry, Interrupt, Sleep).

func (Executor) WithWorkflowRunner

func (_c Executor) WithWorkflowRunner(runner WorkflowRunner) Executor

WithWorkflowRunner returns a copy of the executor with a workflow runner for executing workflows. foremanapi.NewClient(svc) satisfies the WorkflowRunner interface.

type Hook

type Hook struct {
	// contains filtered or unexported fields
}

Hook assists in the subscription to the events of the microservice.

func NewHook

func NewHook(listener service.Subscriber) Hook

NewHook creates a new hook to the events of the microservice.

func (Hook) ForHost

func (c Hook) ForHost(host string) Hook

ForHost returns a copy of the hook with a different hostname to be applied to the subscription.

func (Hook) WithOptions

func (c Hook) WithOptions(opts ...sub.Option) Hook

WithOptions returns a copy of the hook with options to be applied to subscriptions.

type InnerIn

type InnerIn struct {
}

InnerIn are the input arguments of Inner.

type InnerOut

type InnerOut struct {
	InnerResult int `json:"innerResult,omitzero"`
}

InnerOut are the output arguments of Inner.

type MulticastClient

type MulticastClient struct {
	// contains filtered or unexported fields
}

MulticastClient is a lightweight proxy for making multicast calls to the microservice.

func NewMulticastClient

func NewMulticastClient(caller service.Publisher) MulticastClient

NewMulticastClient creates a new multicast client proxy to the microservice.

func (MulticastClient) ForHost

func (_c MulticastClient) ForHost(host string) MulticastClient

ForHost returns a copy of the client with a different hostname to be applied to requests.

func (MulticastClient) WithOptions

func (_c MulticastClient) WithOptions(opts ...pub.Option) MulticastClient

WithOptions returns a copy of the client with options to be applied to requests.

type MulticastTrigger

type MulticastTrigger struct {
	// contains filtered or unexported fields
}

MulticastTrigger is a lightweight proxy for triggering the events of the microservice.

func NewMulticastTrigger

func NewMulticastTrigger(caller service.Publisher) MulticastTrigger

NewMulticastTrigger creates a new multicast trigger of events of the microservice.

func (MulticastTrigger) ForHost

func (_c MulticastTrigger) ForHost(host string) MulticastTrigger

ForHost returns a copy of the trigger with a different hostname to be applied to requests.

func (MulticastTrigger) WithOptions

func (_c MulticastTrigger) WithOptions(opts ...pub.Option) MulticastTrigger

WithOptions returns a copy of the trigger with options to be applied to requests.

type NestedIn

type NestedIn struct {
}

NestedIn are the input arguments of Nested.

type NestedOut

type NestedOut struct {
	FinalResult string `json:"finalResult,omitzero"`
}

NestedOut are the output arguments of Nested.

type NormalBIn

type NormalBIn struct {
}

NormalBIn are the input arguments of NormalB.

type NormalBOut

type NormalBOut struct {
	NormalResult string `json:"normalResult,omitzero"`
}

NormalBOut are the output arguments of NormalB.

type RunInnerIn added in v1.37.0

type RunInnerIn struct {
}

RunInnerIn are the input arguments of RunInner.

type RunInnerOut added in v1.37.0

type RunInnerOut struct {
	InnerResult int `json:"innerResult,omitzero"`
}

RunInnerOut are the output arguments of RunInner.

type TaskAIn

type TaskAIn struct {
}

TaskAIn are the input arguments of TaskA.

type TaskAOut

type TaskAOut struct {
	Started bool `json:"started,omitzero"`
}

TaskAOut are the output arguments of TaskA.

type TaskJIn

type TaskJIn struct {
	NormalResult string `json:"normalResult,omitzero"`
	InnerResult  int    `json:"innerResult,omitzero"`
}

TaskJIn are the input arguments of TaskJ. Reads both branches' results.

type TaskJOut

type TaskJOut struct {
	FinalResult string `json:"finalResult,omitzero"`
}

TaskJOut are the output arguments of TaskJ.

type TaskWIn

type TaskWIn struct {
	Inner int `json:"inner,omitzero"`
}

TaskWIn are the input arguments of TaskW. Reads the merged `inner` field.

type TaskWOut

type TaskWOut struct {
	InnerResult int `json:"innerResult,omitzero"`
}

TaskWOut are the output arguments of TaskW.

type TaskXIn

type TaskXIn struct {
}

TaskXIn are the input arguments of TaskX.

type TaskXOut

type TaskXOut struct {
	InnerStarted bool `json:"innerStarted,omitzero"`
}

TaskXOut are the output arguments of TaskX.

type TaskYIn

type TaskYIn struct {
}

TaskYIn are the input arguments of TaskY.

type TaskYOut

type TaskYOut struct {
	InnerOut int `json:"inner,omitzero"`
}

TaskYOut are the output arguments of TaskY. Contributes a delta to the sum reducer.

type TaskZIn

type TaskZIn struct {
}

TaskZIn are the input arguments of TaskZ.

type TaskZOut

type TaskZOut struct {
	InnerOut int `json:"inner,omitzero"`
}

TaskZOut are the output arguments of TaskZ. Contributes a delta to the sum reducer.

type WorkflowRunner

type WorkflowRunner interface {
	Run(ctx context.Context, workflowName string, initialState any, opts *workflow.FlowOptions) (outcome *workflow.FlowOutcome, err error)
}

WorkflowRunner executes a workflow by name with initial state, blocking until termination. foremanapi.Client satisfies this interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL