Skip to main content
Version: Next

Choosing the right flavor

Introduction

StreamPipes comes with many different options to customize a deployment. This section introduces the various options you can choose from when installing StreamPipes.

You can choose between various deployment modes, choose from two different core packages and several extension packages, wich are described below.

Deployment Mode

For the deployment model, you choose between a standard multi-container Docker-Compose installation and the Kubernetes installation. we provide several Docker-Compose files for the various options shown here and a helm chart. See Docker Deployment and Kubernetes Deployment for more details.

Running StreamPipes in a non-containerized environment

Of course, it is also possible to launch StreamPipes in a non-containerized environment. You will need to build your own executable binaries by running mvn package. In addition, it is required to install the required 3rd party services (see Architecture) and configure the environment variables as described in Environment Variables.

Core Service

We provide two different pre-packaged versions of core services. The default streampipes-service-core is a packaged JAR file which includes client libraries for the various messaging systems StreamPipes supports at the cost of a larger file size. In case you plan to run StreamPipes on less resource-intensive hardware, we recommend to switch to the streampipes-service-core-minimal package, which only includes support for MQTT and NATS, but has a smaller file size and slightly improved startup performance.

Extension Services

Similar to the core, we provide several pre-packaged extension services which differ mainly by their file size, number of supported adapters and pipeline elements and messaging systems.

The following packages exist:

  • streampipes-extensions-all-jvm is the largest package and includes all official StreamPipes adapters and pipeline elements. It also includes support for all messaging systems Streampipes currently supports.
  • streampipes-extensions-all-iiot is a subset of the aforementioned package and excludes adapters and pipeline elements which are often not relevant for IIoT use cases. For instance, the package excludes text mining-related pipeline elements.
  • streampipes-extensions-iiot-minimal is a subset of the aforementioned package and includes only support for the lightweight messaging systems MQTT and NATS.

Generally said, in cases where you plan to deploy StreamPipes on a resource-limited edge device, we recommend a combination of the streampipes-service-core-minimal and streampipes-extensions-iiot-minimal package. This could, for instance, be a device with less than 4GB memory. In other cases, it depends on the use case and if you need all adapters and pipeline elements or are ok with the IIoT-related extensions.

Messaging System

StreamPipes can be configured to use different messaging systems for exchanging events between adapters and pipeline elements. The section Messaging includes detailed information on the configuration of messaging systems.