At a high level aiWARE engines receive input data, process that data, and put processing results back onto the platform. The format of the input and output depends on the engine's processing mode. When registering an engine in the Veritone Developer app, choose one of two modes: segment and stream.
Segment engines
Segment engines process data in small discrete quantities, which are produced by segmenting the input data into messages. They operate out of a stateless queue, where they can process each small bit of content without having any knowledge of the content that came before or after the piece of content that they are processing. Examples: an engine that performs object or face detection on frames of a video stream
Stream engines
Stream engines process data in streams, where the stream is broken up into stream bytes. They operate out of a stateful queue, where the order of the data does matter. Examples: a transcription engine or a gesture identification engine
Batch engines
Previously, aiWARE supported engines that processed and completed an entire file and task in one invocation and communicated directly with the GraphQL API. This engine mode has since been deprecated. Use segment or stream engine modes instead. Please contact us directly for support with legacy batch engines.