Try Valo for free

We want to show you something amazing.

We'll send you a link to download a fully functional Valo copy to play with.

Great! Check your email and enjoy Valo

Apologies, we seem to be having a problem processing your input, please try again


Valo performs analysis on streams of data.

A stream is an append only sequence of events. New events can be added to a stream, but existing events can’t be deleted or modified, which means that all stored events are immutable.

Some examples of possible streams are:

  • Log file entries
  • CPU utilisation samples
  • Stock prices
  • ECG samples
  • Twitter posts

Data is written to a stream by a contributor application.

A stream’s data can be analysed by running queries or free text searches. Queries and searches are generally executed by a consumer application through our Valo SDK libraries or even consume the Valo API directly.

The stream events can be processed:

  • Real time: Valo can analyse a stream of data in real time, without storing the stream’s data.
  • Historical: Valo can also store a stream of data for subsequent historical analysis, in one of Valo’s specialised repositories.

Finally Valo can publish the results of data analysis as new “derived” streams, which in turn can be stored for historical analysis, or produce further derived streams:


Basic Configuration

The basic steps required to configure a stream are to:

  1. Choose a URI to identify the stream.
  2. Specify a schema describing the “shape” of the data in the stream.
  3. Specify a distribution policy to optimise the use of storage and queries
  4. Optionally specify a repository for historical storage


If you are using the Semi-structured repository (SSR) you can perform free text searches without specifying the fields in the stream’s schema.

The SSR supports storing stream data, then specifying the fields in the stream’s schema retrospectively. Refer to the SSR documentation for more information.

Configuring Additional Analytics

Depending on the analysis you wish to perform on your stream’s data you can also:

  1. Enable filtering by domain - by ensuring your schema contains a contributor field
  2. Enable hierarchical filtering - by configuring a taxonomy
  3. Enrich a stream’s content - by enabling tagging