Siddhi 5.1 Documentation¶
This section provides overview and information on using Siddhi.
"Siddhi" is named after "Event" from the Sinhalese language. Siddhi is a stream processing and complex event processing platform that can be used to build fully-fledged event-driven applications. It can be embedded in Java and Python applications, run as a microservices on bare-metal, VM, or Docker, and run natively at scale in Kubernetes.
Checkout the Siddhi features to get an idea on what it can do in brief.
How Siddhi Works¶
Siddhi Application is the artifact that defines the real-time event processing logic of Siddhi as a SQL like script with
.siddhi file extension. It contains consumers(sources), producers(sinks), streams, queries, tables, functions and other necessary contracts depicting how the events should be consumed, processed and published.
To write Siddhi Applications using Siddhi Streaming SQL refer Siddhi Query Guide for details.
For specific API information on Siddhi functions and features refer Siddhi API Guide.
Find out about the supported Siddhi extensions and their versions here.
Executing Siddhi Applications¶
Siddhi can run in multiple environments as follows.
- As a Java Library
- As a Local Microservice
- As a Docker Microservice
- As a Kubernetes Microservice
- As a Python Library
Refer the Siddhi Config Guide for information on advance Siddhi execution configurations.
For all Siddhi execution modes following are the general system requirements.
- Memory - 128 MB (minimum), 500 MB (recommended), higher memory might be needed based on in-memory data stored for processing
- Cores - 2 cores (recommended), use lower number of cores after testing Siddhi Apps for performance
- JDK - 8 or 11
- To build Siddhi from the Source distribution, it is necessary that you have JDK version 8 or 11 and Maven 3.0.4 or later