Back

VDP 101 [6/7] Pipeline modes: SYNC, ASYNC, and PULL

VDP supports pipelines in different modes including SYNC, ASYNC and PULL to fulfil diverse application scenarios.
Po-Yu Chen's github avatar

Published by

Po-Yu Chen

on 3/6/2023

The theme of this tutorial

A VDP Pipeline consists of Source, Model and Destination, altogether defined in a recipe. One pipeline defines one processing unit for a certain AI task. It is an end-to-end workflow that automates a sequence of sub-components to process unstructured data.

INFO

Pipeline is the most important concept in VDP. Check the documentation for more details.

In the previous tutorials, we demonstrated how to use VDP by creating pipelines in SYNC mode. However, To fulfil diverse application scenarios, VDP supports three different modes including SYNC, ASYNC, and PULL. The combination of selected source and destination determines the pipeline mode.

In the following of this tutorial, we will explain how these modes work and how to choose the most suitable mode for your pipeline.

#SYNC mode

A pipeline in the SYNC mode responds to a request synchronously. The result is returned to the user after model instances process the data. This mode is for real-time inference where low latency is of concern. The request flow when triggering a SYNC pipeline is shown below:

In SYNC mode, VDP responses pipeline trigger requests with task outputs.

The source and destination must be configured with the same protocol type to create a SYNC pipeline. VDP supports HTTP and gRPC for a SYNC pipeline.

SYNC mode provides real-time data pipelines. This mode is suitable for coping with stream data to be processed in low latency.

#ASYNC mode

A pipeline in the ASYNC mode performs an asynchronous workload. The user triggers the pipeline with an asynchronous request and only receives an acknowledged response. Once model instances have processed the data, the results are sent to the destination.

In ASYNC mode, VDP responses pipeline trigger requests with simple ACKs. Task outputs are loaded to destinations defined in the pipelines.

To create an ASYNC pipeline, the source can be either HTTP or gRPC, and the destination can be any VDP destination connectors.

This mode is for use cases that do not require the inference results immediately.

#PULL mode (coming soon!)

A pipeline in the PULL mode performs a scheduled workload to regularly pull data from the source to send to model instances for inference and write to the destination.

In PULL mode, users trigger pipelines without uploading data. The pipeline will extract data from sources according to its schedule and load AI model inference results to destinations.

Compared to the ASYNC mode, which requires users to trigger a pipeline via requests, a PULL pipeline is automatically triggered based on the configured schedules. It is, therefore, more suitable for running automated tasks as cron jobs according to computational resources and use cases.

#What's next?

Now that we understand different pipelines modes and their use cases, let's see how to create an ASYNC pipeline in our following tutorial → [7/7] Create, trigger, and parse an ASYNC pipeline.



↓↓↓ VDP 101 - Get familiar with the basics ↓↓↓

Last updated: 3/11/2023, 2:21:57 AM