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.
There are three types of services: Trigger, Flow and Worker. Some services can serve as trigger and worker at the same time.
A trigger can be an endpoint, a poller or any type of service that triggers and publishes data via an output channel.
Flow services are used to define certain business logic. They retrieve and publish data from and to the hive.
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.
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 |