Skip to content

Architecture and services

Local architecture available

Katra is a family of applications centered on Katra Server. The browser-first Katra Client consumes the Server API. Future Agent Harness, Git, workspace, desktop, and mobile boundaries remain separate so they can evolve without collapsing authority into one process.

  • Katra Server: Laravel API, coordination, authorization, persistence, queues, search integration, realtime hints, and meeting credentials.
  • Katra Client: Vue, TypeScript, Vite, and Tailwind interface. It displays and changes Server-owned state.
  • Katra Agent Harness: planned configurable runtime that performs assigned work in a prepared Workspace.
  • Katra Git Service: planned platform-owned canonical repository service.
  • Workspaces: planned prepared environments for workflow or agent assignments.
Capability Address Responsibility
Katra Client http://localhost:5173 Browser interface
Katra Server http://localhost:8000 Laravel API and health endpoint
Horizon http://localhost:8000/horizon Local queue dashboard
Mailpit http://localhost:8025 Private local development mail inbox
Pulse http://localhost:8000/pulse Local application dashboard
Telescope http://localhost:8000/telescope Local diagnostics
Reverb ws://localhost:8081 Browser-facing realtime endpoint
LiveKit signaling ws://localhost:7880 Meeting media signaling
LiveKit RTC/TCP localhost:7881 Local WebRTC TCP fallback
LiveKit RTC/UDP localhost:7882/udp Preferred local media transport
PostgreSQL localhost:5432 Authoritative relational data
Redis localhost:6379 Cache, sessions, and queues
Meilisearch http://localhost:7700 Derived search index

PostgreSQL is authoritative. Redis holds replaceable cache, session, and queue state under the current development assumptions. Meilisearch is rebuilt from PostgreSQL and must not be treated as a source of truth.

Reverb delivers content-minimal refresh hints. Clients recover from missed or out-of-order events through authenticated API reads.

LiveKit transports ephemeral media. Katra Server authorizes the participant and issues a short-lived exact-room credential. LiveKit does not own meeting membership, lifecycle, notes, chat, or outcomes.