Architecture of WSO2 Stream Processor (WSO2 SP)

Roland Hewage
2 min readMar 20, 2020

--

Stream processing and analytics refer to collecting, analyzing and acting on events generated during business activities. This definition is paramount when designing a solution to address a real-time streaming use case. Collecting refers to the collection of data from various data sources. Analysis refers to the manipulation of data to identify interesting patterns and to extract information. Acting refers to notifying the results to other systems and personals and representing the analyzed data visually. Streaming data that needs to be processed or analyzed, sequentially passes through these sections.

The WSO2 SP architecture reflects this natural flow in its design as illustrated below.

WSO2 SP Architecture

WSO2 SP contains Siddhi as its core to collect, analyze and act on the incoming events. The following are the major components of SP.

  1. Siddhi
  2. Stream Processor Studio/Editor
  3. Portal
  4. Business Rules
  5. Status Dashboard
  6. Worker
  7. Job Manager

Siddhi

Siddhi is the major component of SP which has the capability of running the stream processing and complex event processing logic. Stream processing logic can be scripted using a Streaming SQL language as Siddhi Application and deployed into stream processor for processing. It handles collection, analysis and performs actions based on the events which it receives and Siddhi Apps deployed.

Stream Processor Studio/Editor

The Stream Processor Studio provides an environment for developers to build Siddhi applications with the support of syntax highlighting, auto-completion, and with integrated documentation support. It also allows them to test the application using simulations and debug the application to verify the processing logic.

Portal

This is used for data visualization in WSO2 SP. The data from real-time streams and stored tables can be visualized via the portal. The portal can contain several dashboards and widgets that can be generated and customized by users based on their requirements.

Business Rules

Business rules provide a mechanism for business users to manage the rules themselves. Here business users can create/edit/delete simple filters using a form-based interface and or predefined parameterized rules created by the developers.

Status Dashboard

This lets you monitor the system in operation by getting to fine-grain details about its throughput, latency, and how much load it is handling to better understand and manage the environment.

Worker

The worker provides a lightweight stream processing server that lets you deploy and run Siddhi applications in production.

Job Manager

This is used only on fully distributed deployments, to automatically deploy and manage Siddhi applications on multiple Stream Processor worker nodes.

--

--

Roland Hewage

(Born to Code) | Software Engineer (Ecosystem Engineering) at WSO2 | Bachelor of Computer Science (Special) Degree Graduate at University of Ruhuna, Sri Lanka