Architecture Overview
Pranor is a modular backend infrastructure engine. Each module runs independently or together as a unified platform.
System Diagram
βββββββββββββββββββββββ
β Clients β
β (Web, Mobile, API) β
ββββββββββββ¬βββββββββββ
β
ββββββββββββΌβββββββββββ
β Pranor Gate β
β API Gateway & β
β Ingress Router β
ββββββββββββ¬βββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βββββββββββΌβββββββββ ββββββββββΌβββββββββ ββββββββββΌβββββββββ
β Pranor Auth β β Pranor Mesh β β Pranor Cache β
β Identity/RBAC β β Service Discoveryβ β Redis/Memory β
ββββββββββββββββββββ ββββββββββ¬βββββββββ βββββββββββββββββββ
β
βββββββββββββββββββββββββββΌββββββββββββββββββββββββββ
β β β
ββββββββββΌβββββββββ ββββββββββββββΌβββββββββββββ βββββββββββΌβββββββββ
β Your Services β β Pranor Pulse β β Pranor Vault β
β (.pnr files) β β Async Event Broker β β Object Storage β
ββββββββββ¬βββββββββ ββββββββββββββ¬βββββββββββββ ββββββββββββββββββββ
β β
β βββββββββββββΌββββββββββββ
β β β β
ββββββββββΌββββββββ ββββΌβββ βββββββΌββββββ βββββΌββββ
β Pranor Chrono β βFlow β β Notify β β Pool β
β Scheduler β β β β Email/SMS β β DB β
ββββββββββββββββββ βββββββ βββββββββββββ βββββββββ
β
ββββββββββΌββββββββββββββββββββββββββββββββββββ
β Pranor Trace β
β Distributed Tracing (OTLP) β
ββββββββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββΌββββββββββββββββββββββββββββββββββββ
β Pranor Console β
β Observability Dashboard UI β
ββββββββββββββββββββββββββββββββββββββββββββββ
How Modules Connect
| From | To | Protocol | Purpose |
|---|---|---|---|
| Gate β Services | pranor:// | HTTP/gRPC via Mesh | Route requests to backends |
| Services β Pulse | STOMP/TCP | Async messaging | Publish events, consume queues |
| Services β Vault | S3 HTTP API | Object storage | Store files, vectors, configs |
| Services β Cache | Redis protocol | Caching | TTL-based key-value cache |
| Services β Pool | PostgreSQL wire | DB proxy | Connection pooling, read/write split |
| All β Trace | OTLP HTTP | Telemetry | Spans, metrics, logs |
| Chrono β Services | HTTP webhook | Scheduling | Trigger jobs on cron schedule |
| Flow β Services | HTTP | Orchestration | DAG workflow execution |
| Auth β Gate | JWT validation | Security | Token verification on every request |
Module Independence
Each module is:
- A standalone Go binary with zero external dependencies
- Independently deployable (Docker, K8s, bare metal)
- Horizontally scalable
- Observable via standard OTLP
No module requires any other module to function. The Pranor language compiler orchestrates them together when running a unified .pnr service, but each works alone.
Data Flow Example
A typical request through the full platform:
- Client sends
POST /api/ordersto Gate (port 8080) - Gate validates JWT via Auth, applies rate limiting
- Gate routes to your order service via Mesh discovery
- Your service writes order to Vault (S3 storage)
- Your service publishes
order.createdevent to Pulse - Chrono triggers a delayed notification job
- Notify sends confirmation email/SMS
- Trace captures the full request waterfall
- Console displays the trace in real-time
Next Steps
- Security Model
- Observability
- Module Docs β Detailed per-module documentation