Tool for building fully-fledged event-driven applications
Siddhi
Fully open source, cloud native, scalable, micro streaming, and complex event processing system capable of building event-driven applications for use cases such as real-time analytics, data integration, notification management, and adaptive decision-making.
Event processing logic can be written using Streaming SQL queries via graphical and source editor, to capture events from diverse data sources, process and analyze them, integrate with multiple services and data stores, and publish output to various endpoints in real-time.
Benefits
Faster Development
Agile development experience with SQL like query language and graphical drag-and-drop editor supporting event simulation.
Cloud Native
Lightweight runtime that can natively run on Kubernetes, Docker, VM, or bare metal, and embedded in any Java or Python application.
Scalable Deployment
Scalable, and highly available distributed event processing on Kubernetes, with NATS Streaming and Siddhi Kubernetes Operator.
System Integration
Integrates with messaging systems (NATS, Kafka, JMS), Databases (RDBMS, NoSQL), Services (HTTP, gRPC), File systems, E-mail and others.
CI/CD Pipeline
Supports development lifecycle and seamless deployments, through simple file-based configurations, automated tests, and CI/CD pipelines.
Reliability
Zero event loss and exactly once event processing, battle-tested by UBER, eBay, PayPal, HCA, TFL, WSO2 and in many Fortune 500 companies.
Use cases
Streaming Data Integration
- Retrieve and publish data from various enterprise systems.
- Perform data transformation on JSON, XML, Text, Avro, and CSV.
- Integrate with databases, services, and realtime event streams.
- Data preprocessing, fault tolerance, and error handling.
Streaming Data Analytics
- Calculate aggregations over time, length, and session windows.
- Long-running time-series aggregations from seconds to years.
- Analyze event occurrence patterns and trends over time.
- Realtime predictions with online and pre-trained ML models.
Alerts & Notifications
- Generate alerts based on static and dynamic thresholds.
- Correlate data to detect event anomalies and missing events.
- Support scheduling, digest, and auto-retry of notifications.
- Publish alerts via various event sinks such as email, and MQs.
Adaptive Decision Making
- Static rule processing via predefined and database based rules.
- Dynamic rule processing through stateful queries and system state.
- Decision making through synchronous RPC (HTTP, gRPC).
- Incremental learning and decision making online ML models.