an optional clean up function to be applied on timed out elements when pushed
the duration after which the processing of an element would be considered timed out
the function that maps Context to a unique id
Timeout functionality requires each element to be uniquely identified, so it requires a Context, of any type defined by the application, to be carried along with the flow's input and output as a Tuple2 (Scala) or Pair (Java). The requirement is that either the Context itself or a mapping from Context should be able to uniquely identify an element. Here is the ways how a unique id can be retrieved:
the type of the elements pulled from the upstream along with the Context
the type of the elements that are pushed to downstream along with the Context
the type of the context that is carried around along with the elements.
a BidiFlow with timeout functionality