Aletheia

Alert intelligence

.NET 10 Kafka Blazor Server Qdrant YARP SignalR

Aletheia is an event-driven platform that ingests alerts from Zabbix, Grafana and generic webhooks, enriches them with context and classifies them using large language models (LLMs). On top of that classification it applies automated decisions —grouping, delay, escalation and maintenance windows— and executes concrete actions such as creating tickets, sending notifications or issuing acknowledgements. It is built as a set of 12 .NET 10 microservices communicating over Apache Kafka, multi-tenant by design and backed by retrieval-augmented generation (RAG) on Qdrant.

What it does

It turns a noisy stream of alerts into operational decisions and automated actions, reducing the manual workload of on-call teams.

  • Ingests alerts from Zabbix, Grafana and generic webhooks into a unified pipeline.
  • Enriches each alert with relevant context before evaluation.
  • Classifies alerts using LLMs backed by RAG over Qdrant.
  • Applies automated decisions: grouping, delay, escalation and maintenance windows.
  • Executes downstream actions: tickets, notifications and acknowledgements (acks).
  • Isolates data and configuration per tenant thanks to its multi-tenant design.

Architecture

The system follows an event-driven microservices architecture, with Kafka acting as the messaging backbone across the 12 .NET 10 services.

  • 12 decoupled .NET 10 microservices communicating through events on Apache Kafka.
  • Multi-provider AI Gateway supporting Azure OpenAI, OpenAI and Ollama.
  • RAG over Qdrant as the vector store for classification context.
  • YARP-based ingress gateway for request routing.
  • Blazor Server dashboard with real-time updates via SignalR.
  • Multi-tenant model applied cross-cutting across the whole platform.

Stack

Built in C# on .NET 10, it combines Apache Kafka for event messaging, Qdrant as the vector database for RAG, a multi-provider AI Gateway (Azure OpenAI / OpenAI / Ollama), a YARP gateway and a Blazor Server dashboard with SignalR for the real-time interface.

Back to projects