or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

async-operations.mddata-sources.mdfunction-interfaces.mdindex.mdkeyed-streams.mdoutput-operations.mdscala-extensions.mdstream-composition.mdstream-environment.mdstream-partitioning.mdstream-transformations.mdwindow-operations.mdwindowing.md
tile.json

async-operations.mddocs/

Asynchronous I/O Operations

High-performance asynchronous I/O operations for external system integration with configurable parallelism, timeouts, and result ordering.

Imports

import org.apache.flink.streaming.api.scala._
import org.apache.flink.streaming.api.scala.async.{AsyncFunction, AsyncCollector}
import java.util.concurrent.TimeUnit

AsyncDataStream Operations

object AsyncDataStream {
  def unorderedWait[IN, OUT: TypeInformation](
    input: DataStream[IN],
    asyncFunction: AsyncFunction[IN, OUT],
    timeout: Long,
    timeUnit: TimeUnit
  ): DataStream[OUT]
  
  def orderedWait[IN, OUT: TypeInformation](
    input: DataStream[IN],
    asyncFunction: AsyncFunction[IN, OUT],
    timeout: Long,
    timeUnit: TimeUnit
  ): DataStream[OUT]
}

AsyncFunction Interface

trait AsyncFunction[IN, OUT] {
  def asyncInvoke(input: IN, collector: AsyncCollector[OUT]): Unit
}

trait AsyncCollector[OUT] {
  def collect(result: Iterable[OUT]): Unit
  def collect(throwable: Throwable): Unit
}

Enables non-blocking I/O operations for database lookups, REST API calls, and other external system interactions.