Welcome to IBM Streams Tutorials, a central hub containing online courses, guides, and labs to help you develop your skills in IBM Streams.

Get Started

Get started with IBM Streams through these beginner-friendly tutorials.

Python Application API Development Guide

This guide covers the high-level concepts of streaming application development with Python and walks you through creating a sample application.

Streams Quick Start Guide

The Streams Quick Start Guide will first introduce the basic concepts and building blocks. Then, you will write, run and monitor a very simple SPL Streams application.

Java Application API Development Guide

This guide will discuss the general principles behind streaming application development and demonstrate the benefits of the Java Application API in a sample application.

Getting Started with IBM Streams v4.3 Quick Start Edition

A summary of the new features in IBM Streams v4.3 Quick Start Edition and how to get started for developers, data engineers, and business users.

Streaming Analytics Basics for Python Developers

This course introduces you to the IBM Streams Python Application API which lets you write streaming applications without needing to learn SPL.

Get Started with IBM Streams

Follow this course to learn the fundamentals of how to use Streams Studio and the Streams Console.

Streams IoT Starter Kit

Creating an application to use IoT device data is made easier with the Streams IoT Starter Kit. It simplifies setting up the needed services in the IBM Cloud.

Streams Runner for Apache Beam Development Guide

Learn how to use Streams Runner for Apache Beam to execute Beam pipelines.

Water Conservation Starter Kit

Get started with the water conservation starter kit, a prototype for a smarter, connected sprinkler system using Apache Edgent, IBM Streams and the Raspberry Pi.

Streams Studio Quick Start Guide

The Streams Studio Quick Start Guide will teach you the basic concepts and approaches for using the tooling to develop streams applications.

Streaming Analytics on IBM Cloud

Learn how to use IBM Streams with Streaming Analytics on IBM cloud.

Roadmap for Streaming Analytics Service

Follow this roadmap to learn about the IBM Streaming Analytics Service on IBM Cloud.

Streaming Analytics Starter Application

This tutorial explains how to obtain, run, and extend a starter application that is written in Liberty for Java™ and that uses the Streaming Analytics service in the IBM Cloud.

Integrate IBM Streaming Analytics Service with Watson IoT Platform

In this recipe, we show how to use the Streaming Analytics service to analyze the events published by IoT devices, on the IBM Watson IoT Platform.

Developing Python applications for the Streaming Analytics service

Get started with the Python Application API by creating an application that reads data from a temperature sensor and prints the output to the screen.

Video - Deploying the Stock Trades Starter Application

This video gets you started on using the stock trades starter application to analyze stock quotes and compute the rolling average price for each company.

IBM Watson Studio

Learn to create and deploy Jupyter notebook apps from Watson Studio to the Streaming Analytics service on IBM Cloud.

Build a Python app on the Streaming Analytics service

Create a Python app with Jupyter notebook, and then build and deploy this app on the IBM Streaming Analytics service on IBM Cloud.

Healthcare Python Streaming Application Demo

Learn to integrate a Python app that ingests and displays physionet patient data with Jupyter notebook and the Streaming Analytics service on IBM Cloud.

Build and use a data model in real time with the Python API

Learn to create a data model with sample data and visualize and deploy a streaming application on the Streaming Analytics service on IBM Cloud.


Learn how to use the many toolkits with IBM Streams.

Get Started with Cybersecurity Toolkit

Get started with the Cybersecurity Toolkit which provides operators capable of analyzing network traffic and detecting suspicious behaviour.

Get Started with Kafka Operators

Get started with the Messaging Toolkit which provides Kafka operators to get you connected to your messaging servers as quickly as possible.

Get Started with JMS Operators

Get started with the Messaging Toolkit and learn how to configure JMS operators to work with either WebSphere MQ or ActiveMQ messaging systems.

Tutorial for Streaming Telecommunications Event Data Analytics (TEDA)

Learn how to develop mediation applications using the Telecommunications Event Data Analytics toolkit.

Geospatial Toolkit Hands-on Lab

In this lab, you will use simulated telematics data from vehicles (cars or buses), updated every second, to implement a simple geofencing application.

R Toolkit Lab

This lab uses the com.ibm.streams.rproject Streams toolkit to execute an R script on tuples flowing through a Streams application.

SPSS Analytics Toolkit Lab

Leverage the analytics of SPSS in real-time using the IBM SPSS Analytics Toolkit for Streams.

Rules (ODM) Toolkit Lab

Learn how to create business rules, construct rule flows, and create and deploy rules applications to analyze data and automate decisions in real-time.

Rules based processing in real-time streaming applications

Develop a sample application that will walk you through the steps and process of using rules within your streaming applications.

Using the JDBC toolkit to connect to JDBC compliant databases

Use the JDBC toolkit to connect to relational databases from Streams applications running on-prem and in the cloud.

Apache Edgent Integration

Learn how to get started with Apache Edgent on edge devices such as the Raspberry Pi.

Connect Apache Edgent on Pi to the Watson IoT Platform

This recipe shows you how to connect a range sensor to your Raspberry Pi, launch an Edgent sample that reads sensor data and runs analytics locally, then sends filtered data to IBM Watson IoT Platform.

Connect Apache Edgent on Pi to the Streaming Analytics Service

This recipe explains how to connect your Apache Edgent on a Raspberry Pi to the Streaming Analytics Service.


Help improve this site with new documentation/feedback or ask for help on the forums.

To request new documentation, please open an issue here.

If you need help in regards to Streams development, try asking a question here.

To provide feedback on our documentation, please open an issue here.


If you have ideas on how we can better document or explain some of the concepts, we would love to have your contribution! The streamsx.documentation site uses Github Pages and Jekyll markdown for our documentation.

To contribute, clone this project locally, make your changes, and create a pull request.

To learn more on how to do this, refer to the Contributing Links below.