Skip to main content
Workflow configuration has a significant impact on System performance and hardware load. All published performance figures 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 downloads the data to be processed, processes it, and returns the results to the server. All three steps consume resources, so each stage also increases the total project cost. For example, you may want to add a custom stage that runs an automatic script. Before you do, consider running that script from a rule or a predefined event, or combining it with an existing stage.

Address the slowest stage

The slowest stage limits overall performance. The slowest stages are usually those that require manual work. Bottlenecks also appear in unattended processing. The usual causes there are inefficient custom scripts and slow access to uncached 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. Suppose a batch typically holds 10 documents and you want the stage to run twice as fast. Two tasks of 5 documents each are enough. By default, a batch is processed as a single task. Avoid creating one task per document when you do not need to. A task smaller than a batch also limits what the executor can do. A verifier can work through documents one at a time. Automatic document assembly cannot, because it needs all the pages of a batch in a single task.