Skip to main content
Workflow configuration has a significant impact on System performance and hardware load. The figures elsewhere in this guide assume the default workflow, which contains the Pre-processing, Recognition, Verification, and Export stages. To fit the requirements of specific projects, you can add processing stages, reorder them, and set up sophisticated routing rules. When you do, keep these guidelines in mind.

Avoid too many stages

Each stage increases the volume of resources required — downloading the data to be processed, getting it processed, and returning the results to the server — and, hence, the total project cost. For example, if you are going to add a new custom stage for an automatic script, consider executing that script using rules or predefined events, or combining it with an existing stage instead.

Address the slowest stage

The slowest stage limits overall performance. Typically, the slowest stages are those that require manual work, but bottlenecks can also appear in unattended processing — caused by non-optimal custom scripts or slow access to non-cached external resources. Observe the queues at each stage in the Administration and Monitoring Console to identify the slowest stage. Then speed it up, or at least parallelize it using the Documents per Task option in the stage properties.

Size parallel tasks correctly

When you parallelize processing at a stage, avoid splitting it into too many pieces: handling each piece requires additional work from the System. In particular, a large number of very small automatic tasks can slow down the Processing Server that distributes them among executors. If you need to speed up a stage by just a factor of two and you typically have 10 documents in a batch, it is enough to create a task for 2 sets of 5 documents each instead of a single task for the whole batch (the default). Avoid creating one task per document when you do not need to. Also remember that making a task smaller than a batch limits the executor’s flexibility: a verifier may be able to work with each document independently, but automatic document assembly needs all the pages of one batch in a single task.