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.