Skip to main content

Processor

Processor is internal Rules Engine component that is responsible for executing flows.

Prioritisation

Processor utilises in-memory queue to make sure that all events produced by multiple clients will be executed in the same way they were put in the message broker. Rules Engine consumes data in chunks (500 events) by default.

Flows Execution

When event is received, Processor will use GFlow to get all matching flows. These flows are executed in a synchronous manner, starting from the oldest to the newest, sorted based on their editedAt timestamp.

Hooks

Processor is responsible for triggering hooks, so they should be used with caution - big amount of flow hooks will result increased latencies. Non-blocking hooks can be used to mitigate this issue.

Progress Events

If client requires full integration with Rules Engine progress, internal fanout can be used to consume all generated progress and completion events.

Progress events are being produced to internal message broker, so there is no way to provide clients with direct access. Proxy service should be implemented as part of a client project and is not covered by FanX product. Please refer to Integrations for more information.

DLQ

In case of an internal error, Processor will retry event execution up to 5 times, after that the event will be placed in dead-letter queue. This queue can't be ingested by clients and is used for internal investigations and monitoring only.