Skip to content

Architecture Overview

graph TB
  subgraph Client["Client Layer"]
    BR[Browser]
  end

  subgraph Frontend["Frontend (3000/3001)"]
    UI[React 19 + Vite 7\nRedux Toolkit + Tailwind]
  end

  subgraph Backend["Backend (8080/8081)"]
    API[Spring Boot\nJWT Auth + Workspace API]
  end

  subgraph AILayer["AI Layer"]
    AIS[AI Service :9300\nGroq + Tool Calling]
    SEM[Semantic Search :9100\nNeural Search]
    ANA[Analyzer :9000\nGroq AI 27 strategies]
    MCP[MCP Server :9500\nPython/uvicorn]
    ARN[Agent Runner :9400\nScheduled Agents NEW]
  end

  subgraph Search["OpenSearch"]
    OS[OpenSearch :9200\nv3.4.0]
    OSD[Dashboards :5601\nVisualization]
    DP[Data Prepper\n:21890/:21891\nOTEL Ingestion]
  end

  subgraph Infra["Infrastructure"]
    WH[Webhook Server :9999\nGitHub receiver]
    WA[Deploy watcher\n60s branch poll]
    CON[Management console\nbuild - pin - compose up]
  end

  BR --> UI
  UI --> API
  UI --> AIS
  AIS --> SEM
  SEM --> OS
  AIS --> OS
  AIS --> API
  AIS --> ANA
  ARN --> AIS
  ARN --> API
  API --> OS
  MCP --> OS
  ANA --> OS
  DP --> OS
  OS --> OSD
  WH --> CON
  WA --> CON

Every repo has main and nothing else. Prod and dev are separate VMs running one container per service, so there is no main + dev pair sharing a box — which is why the analyzer is 9000 on prod and 9001 on dev. A push to main deploys to dev only; prod moves when a human promotes the image that was tested there.

All log data flows through OpenSearch. Services do not maintain their own log stores — they query OpenSearch for all analytics, search, and anomaly detection.

The AI Service is the central intelligence layer. It uses Groq’s LLM with multi-turn tool calling to orchestrate queries across OpenSearch, the Backend API, and the Analyzer. No raw LLM responses — all structured via JSON blocks for rich UI rendering.

The MCP Server exposes Logrite’s compliance scanning tools via HTTP+SSE transport using the Model Context Protocol. Any MCP-compatible AI client (Claude Desktop, Cursor, etc.) can invoke Logrite’s compliance tools.

The Agent Runner (port 9400) is a new service that polls the Backend for scheduled agents and fires them on cron schedules. Agents call the AI Service’s chat API with a pre-built context, then store execution logs back to the Backend.

ServiceRepoLanguageCompose service
FrontendLogrite-UIReact/Vitefrontend
BackendLogrite-AISpring Bootbackend
Analyzerlogrite-analyzerNode.js/TSanalyzer
Semantic Searchlogrite-semantic-apiNode.js/TSsemantic-search
AI Servicelogrite-ai-serviceNode.js/TSai-service
MCP Serverlogrite-mcp-serverPythonmcp-server
Agent Runnerlogrite-agent-runnerNode.js/TS— (proposed, not deployed)
Webhooklogrite-webhookNode.jswebhook
Master ControlLogriteMasterControlPython/Node.jsdata-prepper (config)
OpenSearchLogriteOpenSearchJavaopensearch, opensearch-dashboards