Architecture
Main components
text
Sniffer -> Redis Streams -> Engine -> PostgreSQL -> API/WebSocket -> FrontendAt 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-mtawith 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 primitivesvigilyx-parser: SMTP, MIME, and protocol parsingvigilyx-sniffer: packet capture and passive session publishingvigilyx-db: PostgreSQL and Redis abstractionsvigilyx-engine: detection modules, verdict fusion, DLP, temporal analysisvigilyx-api: REST API, auth, metrics, WebSocket updatesvigilyx-soar: alerting and response automationvigilyx-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
