Batch-Verarbeitungstechnologien (wie MapReduce, Hive, Pig) sind ausgereift und in der Industrie weit verbreitet. Diese Systeme haben das Problem der Verarbeitung großer Datenmengen erfolgreich gelöst. Allerdings müssen große Datenmengen zunächst gesammelt und in einer Datenbank oder einem Dateisystem gespeichert werden. Das ist sehr zeitaufwändig. Dann dauert es eine Weile, bis die Stapelverarbeitungsanalyse abgeschlossen ist, bevor man Ergebnisse erhält. Es gibt jedoch viele Fälle, in denen Analyseergebnisse aus einer unbegrenzten Datenmenge in Sekunden oder Subsekunden benötigt werden. Um die steigende Nachfrage nach der Verarbeitung solcher Streaming-Daten zu befriedigen, wurden mehrere Streaming-Verarbeitungssysteme implementiert und weit verbreitet, wie z. B. Apache Storm, Apache Spark, IBM InfoSphere Streams und Apache Flink. Die Frage, wie man Streaming-Verarbeitungssysteme evaluiert, bevor man sich für eines in der Produktionsentwicklung entscheidet, ist jedoch offen. In diesem Buch stellen wir StreamBench vor, ein Benchmark-Framework, das Leistungsvergleiche von Stream-Processing-Systemen erleichtert. Ein wesentliches Merkmal des StreamBench-Frameworks ist seine Erweiterbarkeit - es unterstützt die einfache Definition neuer Workloads und erleichtert das Benchmarking neuer Stream-Processing-Systeme.