Services

Servcies are the workhorses of the system. Services are split into Trigger / Flow / Worker Services.

Trigger services are used to feed the system with Events and Data.

Flow services are used to implement the logic, what has to be done with the Events flowing around in the system. Those Events come from triggers and other flows.

Worker services write and read data to other systems as needed. We try to make a worker for every specific atomic operation on any system. This allows us to have easy testing / reusability of operations between flows and easy scaling / updateing and upgrading.

Services

There are three types of services: Trigger, Flow and Worker. Some services can serve as trigger and worker at the same time.

Triggers

A trigger can be an endpoint, a poller or any type of service that triggers and publishes data via an output channel.

Flows

Flow services are used to define certain business logic. They retrieve and publish data from and to the hive.

Workers

A worker is usually a service that retrieves data from the hive via an input channel and does the one job that he was designed for.

Compare Trigger vs Flows vs Worker

What Trigger Flow Worker
What for: Entrypoint for external System Define business logic Execute calls from workflow to external System
Communication Channel-Types: only Output-Channel Input- and Output-Channel Only Input-Channel
Can call ingrid services: 1 Workflows or 1 worker service Many other Workflows and other workers services Not possible
Complex Business logic implementation: no Yes (calling workflows/workers) no
Is called from: External from 3rd party product
exceptiontional: ingrid-Workflow
Internal call Internal call
Communication direction: From Trigger to ingrid From and to ingrid From ingrid to worker