# README
Open Integration - a pipeline execution engine

Install
Homebrew
brew tap open-integration/oi
brew install oictl
Linux and Win
Use the released binaries
Til the project has not reached version > 1.x.x
it may have breaking changes in the API, please use the latest version before opening issue.
Concepts
- A compiled, binary pipeline
- State - the engine holds the state of all the tasks
- Service - a standalone binary exposing API over http2 (gRPC) that the engine can trigger, called endpoint.
- Endpoint of a service defined by 2 files of JSON schema,
arguments.json
andreturns.json
, the engine will enforce the arguments given by a task and the output created to match the schema.
- Endpoint of a service defined by 2 files of JSON schema,
- Task - execution flow with input and output.
- Service Task will send a request to service based on the endpoint.
Architecture
Dataflow
Example
use oictl to generate hello-world pipeline
ioctl generate pipeline
go run *.go
Real world examples
# Functions
ConditionCombined returns the condition that is evaluated to true when all the conditions are true.
ConditionEngineStarted returns the condition that is evaluated to true on engine.started event.
ConditionTaskEventReported return the condition that satisfied when task reported event in format {TASK_NAME}.{EVENT}.
ConditionTaskFinished returns the condition that is evaluated to true on task.finished event and the task is marked as finished in the state.
ConditionTaskFinishedWithStatus returns the condition that is evaluated to true on task.finished event and the task is marked as finished in the state and the status is as given.
HandleEngineError prints the error in case the engine.Run was failed and exit.
NewEngine create new engine.
NewFunctionTask build task that will be executed in same process.
NewSerivceTask build task task calls a service with arguments.
NewTickerTask builds task that will send event every tickInterval till it stops on totalTime.
# Structs
No description provided by the author