Skip to content

Architecture

Main components

text
Sniffer -> Redis Streams -> Engine -> PostgreSQL -> API/WebSocket -> Frontend

At runtime, the deployment is split into a control plane plus one active data plane:

  • Control plane: vigilyx + PostgreSQL + Valkey/Redis
  • Mirror data plane: vigilyx-sniffer + vigilyx-engine-standalone
  • MTA data plane: vigilyx-mta with its embedded inline engine

The project is split into focused Rust crates plus a React frontend and optional Python AI service.

Core crates

  • vigilyx-core: shared models, error types, security primitives
  • vigilyx-parser: SMTP, MIME, and protocol parsing
  • vigilyx-sniffer: packet capture and passive session publishing
  • vigilyx-db: PostgreSQL and Redis abstractions
  • vigilyx-engine: detection modules, verdict fusion, DLP, temporal analysis
  • vigilyx-api: REST API, auth, metrics, WebSocket updates
  • vigilyx-soar: alerting and response automation
  • vigilyx-mta: SMTP proxy with embedded inline engine

Mirror path

In mirror mode, the sniffer captures network traffic and reconstructs sessions. Those sessions move through Redis Streams into the dedicated vigilyx-engine-standalone container, which persists results to PostgreSQL and exposes them through the API and dashboard.

Inline path

In MTA mode, the SMTP proxy accepts mail, parses the message, runs inline inspection inside vigilyx-mta, and then decides whether to relay, quarantine, or reject.

Design principles

  • Engineering-first, not AI-first
  • Explainable verdicts
  • Replayable and auditable workflows
  • Clear separation between capture, analysis, storage, and UI
  • Shared parsing and detection logic across mirror and MTA paths

Released under AGPL-3.0-only.