Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

namb logo namb

Circle CI GitHub tag (latest SemVer pre-release)

NAMB (Not only A Micro-Benchmark) is a parametrizable and automatically generated benchmark application for Data Stream Processing Systems (DSP).


  • Simple YAML-based configuration for parameters definition

  • Automatic application generation, no need to manually touch the platform APIs

  • Ready-to-use python script to deploy the benchmark application

  • Supported platforms:

    platform version
    Apache Flink Maven Central with version prefix filter
    Apache Storm Maven Central with version prefix filter
    Apache Heron Maven Central with version prefix filter


  • Java 8 and maven environment
  • Python 3

Quick Start

N.B. We assume a local deployment of a DSP platform is previously configured and running.
For this quickstart we consider running NAMB on Apache Flink.

  1. Clone the repository in a local folder and move in it

  2. Compile the project:

    python3 build

    or directly with maven:

    mvn clean install
  3. Prepare NAMB environment

    • Copy the default NAMB configuration file to the main configuration folder:
    cp conf/defaults/workflow_schema.yml conf/namb.yml
    • Copy the platform-specific configurations to the main configuratino folder:
    cp conf/defaults/flink-benchmark.yml conf/flink-benchmark.yml

    More info on how to ustomize the configuration files see doc/configurations

  4. Run the benchmark application:

    python3 flink

    Use -h for more options and infos.


[pagliari2019workflow] A. Pagliari, F. Huet, G. Urvoy-Keller, "Towards a High-Level Description for Generating Stream Processing Benchmark Applications", IEEE BigData, 3rd IEEE BPOD Workshop, 2019

[pagliari2020namb] A. Pagliari, F. Huet, G. Urvoy-Keller, "NAMB: A Quick and Flexible Stream Processing Application Prototype Generator", IEEE/ACM CCGrid 2020