StreamX updates: OpenSearch added, more features to come

Katarzyna Wasiluk-Maksymiuk

by Katarzyna Wasiluk-Maksymiuk
4 min read

Two developers seated at desks, each working on a computer and focused on coding. The room is equipped with multiple screens and typical office setup. Two developers seated at desks, each working on a computer and focused on coding. The room is equipped with multiple screens and typical office setup.

Take it straight from the Project Manager: we've been quite busy at StreamX lately.

Significant improvements have been made in a few key areas: search functionality, data storage, and system monitoring capabilities.

We've expanded our documentation, adding detailed guides on configuring StreamX Mesh using YAML files and deploying StreamX on local Kubernetes clusters.

We're also working on something we think you'll love, called Mesh Manager. This new web app will give you a visual way to manage your StreamX mesh, making it easier than ever to configure and monitor the system.

Stay tuned – there's more features to come!

Feature Rollout

OpenSearch

The key update is the transition from Lucene Search Engine to OpenSearch for StreamX search capabilities. 

While Lucene has been a robust search library, we anticipated challenges with its maintenance and scaling. That’s why we introduce support for OpenSearch that improves:

  • Scalability: as it’s designed to handle large volumes of data and high query loads with ease,

  • Maintainability: as it simplifies the operational aspects of search, and provides

  • Service Independence: as operates independently from the StreamX Mesh, providing a more modular and flexible architecture.

Want to see it in action? Check it out with our tutorial: Set up search with StreamX.

Support for RocksDB

We introduced support for RocksDB as a new store backend in StreamX. 

This allows switching from in-memory storage to persistent storage using RocksDB, either for specific stores or globally across the application. RocksDB optimizes performance for fast storage and large-scale server workloads by offloading data to disk, reducing memory consumption, and preventing OutOfMemoryErrors. 

Enhanced Observability and Monitoring

We have introduced a set of reusable Terraform modules designed to set up long-lived environments efficiently.

In addition, we’ve developed a distribution testing framework using the Gatling Operator, which allows us to thoroughly assess the distribution of StreamX.

To enhance our observability and monitoring capabilities, we’ve adopted several industry standards:

  • OpenTelemetry for tracing

  • Micrometer for gathering metrics

  • Loki as our logs database

  • Grafana Dashboards and Jaeger for UI-based monitoring

The improvements enable us to monitor environment behavior and track its health in real-time, providing the team with extensive information. This setup facilitates quick reactions to incidents, ensuring more effective and responsive management of the environment.

New Documentation

  • StreamX Mesh YAML File: that provides a comprehensive guide on configuring a StreamX Mesh using a YAML file. It details how to set up services, Docker images, environment configurations, and serves as the entry point for starting StreamX Mesh. Read more

  • Run StreamX on Local Kubernetes Cluster: this guide walk you through setting up StreamX on a local Kubernetes cluster using Docker and Terraform. Read more

Looking Ahead

Mesh Manager - Feature Preview

To support managing the mesh, the StreamX Development Team is working on the Mesh Manager - a web application to visualize and manage the StreamX mesh. After uploading the mesh from the StreamX Mesh YAML file, it can be adjusted and downloaded for further use.

Simple graph of the StreamX mesh displaying interconnected nodes.

The current preview version enables adding and removing connections, creating and removing topics and source services, and switching between overview (read-only) mode and manager mode.