Skip to content

tusharkhatriofficial/Eventara

Repository files navigation

ChatGPT Image Feb 11, 2026, 03_08_11 PM copy

See it before your users do

Open-source, self-hosted event monitoring with real-time analytics and intelligent alerting

Kafka-powered ingestion. TimescaleDB + Redis metrics. Intelligent alerting. Live dashboards. One docker compose up.

License Docker Ready Kafka Powered PRs Welcome GitHub stars

Docs · Issues · Discussions · Quick Start

Screenshot 2026-01-28 at 2 04 28 PM Screenshot 2026-01-28 at 2 06 25 PM Screenshot 2026-01-28 at 2 06 52 PM

Why Eventara

Every company that scales past a handful of services needs event monitoring. The options today are either expensive SaaS platforms where you hand over your data, or stitching together 5+ open-source tools yourself.

Eventara is a single, self-hosted platform that handles ingestion, streaming, real-time analytics, threshold alerting, and live dashboards out of the box. You keep your data. You control the pipeline. You deploy with one command.


What it does today (v0.1.1)

Ingestion -- REST API accepts events from any service, language, or platform. Events flow into Kafka for ordered, durable, high-throughput delivery.

Real-time analytics -- Redis sliding-window aggregation for sub-second metrics. TimescaleDB hypertables for time-series storage with automatic compression and continuous aggregates. Metrics roll up from Redis to TimescaleDB every 60 seconds.

4 threshold rule types -- evaluated in real time by a Java handler engine:

Rule Type What it does
Simple Threshold Fire when a metric crosses a boundary (error rate > 10%)
Composite AND/OR logic across multiple conditions (error rate > 10% AND latency > 500ms)
Event Ratio Track ratios between event types (payment.failed / payment.total > 0.05)
Rate of Change Detect spikes and drops (throughput fell 30% in 5 minutes)

Drools is used under the hood for DRL generation, syntax validation, and the rule-testing API -- but the hot-path evaluation is pure Java for maximum throughput.

Adaptive evaluation -- the engine adjusts its polling interval based on traffic volume. 30s at idle, 100ms during bursts. No wasted compute when things are quiet, instant sensitivity when they are not.

Live dashboard -- React 19 + Vite + Chart.js with WebSocket push updates every second. Rule editor with visual composite builder, ratio config, and source/event filters.

Webhook notifications -- alert channels with webhook delivery when rules fire.


Quick Start

git clone https://github.com/tusharkhatriofficial/eventara.git
cd eventara
docker compose up --build -d

For a VM-style deploy using a Docker image, see DEPLOYMENT.md.

Service URL
Dashboard http://localhost:5173
API http://localhost:8080
Swagger http://localhost:8080/swagger-ui.html
Kafka UI http://localhost:8090

Send your first event

curl -X POST http://localhost:8080/api/v1/events \
  -H "Content-Type: application/json" \
  -d '{
    "eventType": "payment.failed",
    "source": "payment-service",
    "userId": "user_123",
    "severity": "ERROR"
  }'

Open the dashboard. Events appear in real time.


Architecture

Your Services --> REST API (Spring Boot) --> Kafka --> Redis (real-time metrics)
                                              |                |
                                              v                v
                                        TimescaleDB      Drools Engine
                                              |                |
                                              v                v
                                        Flyway Schema    WebSocket (STOMP)
                                                               |
                                                               v
                                                     Dashboard (React + Vite)

Core stack in one Docker Compose file. Full stack in 30 seconds.


Tech Stack

Layer Technology
Runtime Java 21, Spring Boot 3.5.7
Messaging Apache Kafka (KRaft mode; no Zookeeper)
Time-series TimescaleDB (PostgreSQL 14)
Cache / Metrics Redis 7
Rule Engine Java handler pattern (Drools for DRL validation)
Migrations Flyway (7 migrations)
Frontend React 19, Vite 7, Tailwind CSS, Chart.js
Real-time WebSocket via STOMP + SockJS
API Docs SpringDoc OpenAPI 2.7
Deploy Docker Compose

API

# Ingest event
POST /api/v1/events

# Get metrics
GET /api/v1/metrics

# Query events by type
GET /api/v1/events/type/{type}?page=0&size=10

# Alert rules CRUD
POST /api/v1/rules
GET /api/v1/rules
PUT /api/v1/rules/{id}
DELETE /api/v1/rules/{id}

# Test rule evaluation
POST /api/v1/rules/{id}/test

Full API docs at https://www.eventara.co/introduction.


Roadmap

  • Event ingestion + Kafka pipeline
  • Real-time dashboard with WebSocket
  • TimescaleDB time-series storage
  • Redis distributed metrics
  • 4 threshold rule types (Simple, Composite, Ratio, Rate of Change)
  • Adaptive evaluation engine
  • Webhook notification channel
  • Multi-channel alerts (Slack, PagerDuty, email)
  • gRPC ingestion endpoint
  • Anomaly detection and forecasting rules
  • Kubernetes Helm chart
  • Authentication and RBAC

Contributing

Contributions welcome. Whether you are learning Spring Boot and Kafka, or you want a self-hosted monitoring platform for your team.

# Backend
mvn spring-boot:run

# Frontend
cd eventara-dashboard && npm install && npm run dev
  1. Fork and create a branch
  2. Make your changes
  3. Open a Pull Request

Look for issues tagged good first issue to get started.


License

Apache 2.0. See LICENSE.