AI-Powered Microservices Observability & Incident Response Platform
Real-time global intelligence dashboards and AI-powered monitoring for modern microservices architectures.
- Real-time WebSocket Agents - Services ping health metrics via persistent WebSocket streams
- AI Anomaly Detection - Auto-detects anomalies, suggests root causes, drafts incident reports
- Multi-tenant SaaS - Each team gets their own isolated dashboard
- One-click Runbooks - Automated incident response workflows
┌─────────────┐ WebSocket ┌─────────────────────────┐
│ Agents │ ──────────────────► │ NestJS Gateway │
│ (Services) │ ◄────────────────── │ + WebSocket Server │
└─────────────┘ Heartbeats └───────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ PostgreSQL + TimescaleDB│
│ + Redis │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ React Dashboard │
│ (Real-time charts) │
└──────────────────────────┘
| Layer | Technology |
|---|---|
| Backend | NestJS (TypeScript) |
| Frontend | React 19 + Vite |
| Real-time | WebSockets (ws) |
| Database | PostgreSQL + TimescaleDB |
| Cache | Redis |
| Package Manager | pnpm (workspaces) |
- Node.js >= 20
- pnpm >= 9
- PostgreSQL 15+ (with TimescaleDB extension)
- Redis 7+
pnpm install# Run all apps in parallel
pnpm dev
# Or run individually
pnpm --filter @flux-ops/backend dev
pnpm --filter @flux-ops/web devpnpm buildflux-ops/
├── apps/
│ ├── backend/ # NestJS WebSocket server
│ │ ├── src/
│ │ │ ├── gateway/ # WebSocket gateway & connection manager
│ │ │ ├── auth/ # JWT authentication
│ │ │ ├── metrics/ # Metrics storage service
│ │ │ └── health/ # Health check endpoints
│ │ └── package.json
│ └── web/ # React dashboard
│ ├── src/
│ │ ├── App.tsx # Main dashboard component
│ │ └── index.css # Global styles
│ └── package.json
├── packages/
│ └── shared/ # Shared types & constants
│ └── src/
│ ├── types/ # TypeScript types
│ └── constants.ts
└── package.json # Root workspace config
// Authenticate
{ type: 'auth', token: string }
// Send heartbeat with metrics
{ type: 'heartbeat', payload: AgentHeartbeat }
// Subscribe to topic
{ type: 'subscribe', topic: string }
// Unsubscribe from topic
{ type: 'unsubscribe', topic: string }// Auth success
{ type: 'auth_success', tenantId: string, serviceId: string }
// Heartbeat acknowledged
{ type: 'heartbeat_ack', serviceId: string, timestamp: Date }
// Metric update (broadcast)
{ type: 'metric', payload: MetricValue, serviceId: string }
// Incident alert
{ type: 'incident', payload: IncidentAlert }Coming soon: Prisma schema with TimescaleDB hypertables and Row-Level Security policies.
MIT