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

FromToProtocolPurpose
Gate → Servicespranor://HTTP/gRPC via MeshRoute requests to backends
Services → PulseSTOMP/TCPAsync messagingPublish events, consume queues
Services → VaultS3 HTTP APIObject storageStore files, vectors, configs
Services → CacheRedis protocolCachingTTL-based key-value cache
Services → PoolPostgreSQL wireDB proxyConnection pooling, read/write split
All → TraceOTLP HTTPTelemetrySpans, metrics, logs
Chrono → ServicesHTTP webhookSchedulingTrigger jobs on cron schedule
Flow → ServicesHTTPOrchestrationDAG workflow execution
Auth → GateJWT validationSecurityToken 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:

  1. Client sends POST /api/orders to Gate (port 8080)
  2. Gate validates JWT via Auth, applies rate limiting
  3. Gate routes to your order service via Mesh discovery
  4. Your service writes order to Vault (S3 storage)
  5. Your service publishes order.created event to Pulse
  6. Chrono triggers a delayed notification job
  7. Notify sends confirmation email/SMS
  8. Trace captures the full request waterfall
  9. Console displays the trace in real-time

Next Steps