Skip to content

Publish and unpublish workflows

Publishing

A workflow can be used to analyze documents only if it is published. Publishing makes the workflow a program ready to run on demand, which can be obtained programmatically using the NL Flow API or interactively with the test GUI.

  • You can publish the workflow you are working on from within the editor or you can publish one or more workflows from the Runtime view of the main dashboard.
  • Only workflows associated with at least one API key can be used programmatically through the API, while all can be tested from the GUI. Find more information about API keys and how to manage them in the description of the Runtime view of the main dashboard.
  • A workflow can be published is synchronous or asynchronous mode.

    In synchronous mode it responds to the caller only when the analysis is complete.

    In asynchronous mode, instead, the analysis requests are placed in a queue and the results are cached.
    When a caller submits an analysis request it gets a task ID instead of the analysis results. The analysis request is queued and processed after previously queued requests. Results are cached, so, to obtain them, the caller must inquire about the status of the task and, when this is completed, request the results. - A published workflow, in order to work, needs computational resources (CPU, RAM) corresponding to the deployment properties of its building blocks (see for the example the deployment properties of model blocks).
    If multiple replicas are required for a block, the required resources will be those set as deployment properties multiplied by the number of replicas.
    All the computational resources required by a workflow must be available at the time of publication, even if, in the case of asynchronous publication with autoscaling (see below), it is possible that they are not allocated immediately. Also, the NL flow runtime imposes limits on the number of workflows published and the number of Javascript blocks used. - An asynchronous workflow can, if chosen by the user, be subject to autoscaling.
    With autoscaling, all the replicas of the workflows's building blocks are dynamically turned on and off based on the status of the queue, in order to spare computational resources.
    Find more information about this in the reference section. in the article about autoscaling parameters. - The publishing status of a workflow is represented by a colored dot in the (Workflows, Models and Runtime) views of the main dashboard and in the editor.

    Detail information about the publishing status can be obtained in the editor or via NL Flow API.

  • A published workflow can be edited and re-published without the need to unpublish it. The re-publishing procedure is the same as for publishing.

Publishing wizard

The publishing wizard starts when you choose to publish one or more workflows. The wizard consists of two or four steps, depending on whether the publishing mode is synchronous or asynchronous.

In the first step of the wizard you choose the workflows to publish and the associated API keys. The step differs based on the GUI control you start the operation from. See the article about the editor and that about the Runtime view to know about this step.

The next steps of the wizard are described below and are essentially the same regardless of the starting point.

Second step

In the second step you have to choose the publication mode between synchronous and asynchronous.
It also shows graphically how much of the overall capacity of the NL Flow runtime is already allocated to other published workflows and—in brackets and with an accent color—the allocation increase (or decrease) that the publication would cause.

Each published asynchronous workflow has an implicitly added block—the asynchronous queue manager—which requires extra resources equal to 250 thousandths of CPU and 256 MiB of RAM.
This extra increment is visualized as a bordered rectangle with diagonal lines.

If there are not enough resources for publishing, a warning appears and it is not possible to proceed, the operation must be cancelled.

If you choose synchronous mode, this is the last step of the wizard and just choose Publish workflow, or in the case of publication started from an API key with the choice of multiple workflows, Publish # workflow, where # is the number of workflows.

Third step

This and the next step of the wizard are only there if you publish the workflow in asynchronous mode.

In the third step the retry policies are configured.

Fourth step

In the fourth step the autoscaling parameters of the workflow are configured.

Unpublishing

Unpublishing renders a workflow unusable and frees up any computational resources that may have been allocated to it. If the workflow was published asynchronously, all queued tasks are dropped and must be canceled through the appropriate NL Flow API requests.

It is good practice to unpublish unused workflows in order to make more resources available for other workflows and, especially in the case of Cloud installations, to reduce costs and energy consumption.

An unpublished workflow is still defined and can be edited and republished if necessary.

To unpublish a workflow use the editor or the Workflows view of the dashboard.