How sanketdhole/torana-java works
Torana is a reactive enterprise AI gateway: it normalizes client protocols into a shared request, applies tracing and security controls, selects a route, runs a configured pipeline, invokes backend connectors, and returns a protocol-encoded response. The graph preserves the README’s major protocol, policy, resilience, and connector capabilities. Runtime flow is based on the documented lifecycle; sampled source confirms pipeline orchestration and gRPC dispatch, but most filter wiring and unsampled integrations are not shown.
Main entry points: PipelineExecutor.java Pipeline executor · step Pipeline steps · RequestTracingFilter.java Request tracing · McpProtocolAdapter.java Protocol adapters
Components 20
Protocol ingress
- Protocol adapters
torana-protocol-mcp/src/main/java/com/phaselume/torana/protocol/mcp/McpProtocolAdapter.java - gRPC service
torana-protocol-grpc/src/main/java/com/phaselume/torana/protocol/grpc/server/AgentGatewayGrpcService.java - REST adapter
torana-protocol-rest/src/main/java/com/phaselume/torana/protocol/rest/RestProtocolAdapter.java - WebSocket adapter
torana-protocol-websocket/src/main/java/com/phaselume/torana/protocol/websocket/WebSocketProtocolAdapter.java
Request controls
- Request tracing
torana-observability/src/main/java/com/phaselume/torana/observability/tracing/RequestTracingFilter.java - Authentication
torana-security-authn/src/main/java/com/phaselume/torana/security/authn/filter/ToranaAuthenticationWebFilter.java - Route matching
torana-routing/src/main/java/com/phaselume/torana/routing/filter/RoutingWebFilter.java - Rate limiting
torana-ratelimit-redis/src/main/java/com/phaselume/torana/ratelimit/filter/RateLimitWebFilter.java - Redis
- OPA authorization
torana-security-authz-opa/src/main/java/com/phaselume/torana/security/authz/opa/engine/OpaAuthorizationEngine.java - OPA service
Pipeline execution
- Pipeline executor
torana-pipeline/src/main/java/com/phaselume/torana/pipeline/executor/PipelineExecutor.java - Pipeline registry
torana-pipeline/src/main/java/com/phaselume/torana/pipeline/registry/PipelineRegistry.java - Pipeline steps
torana-pipeline/src/main/java/com/phaselume/torana/pipeline/step
Backend integrations
- Backend connectors
torana-connector-http/src/main/java/com/phaselume/torana/connector/http/HttpBackendConnector.java - LiteLLM connector
torana-connector-litellm/src/main/java/com/phaselume/torana/connector/litellm/LiteLLMConnector.java
Resilience and audit
- Resilience decorators
torana-resilience/src/main/java/com/phaselume/torana/resilience/decorator/Resilience4jResilienceDecorator.java - Audit sinks
torana-observability/src/main/java/com/phaselume/torana/observability/audit/sink/CompositeAuditSink.java
Other components
- Client / agent
- Enterprise services
Connections 27
- Client / agent → Protocol adapters: sends protocol request
- Client / agent → gRPC service: calls gRPC
- Client / agent → REST adapter: sends HTTP request
- Client / agent → WebSocket adapter: opens session
- gRPC service → Pipeline executor: dispatches request
- Protocol adapters → Request tracing: normalizes request
- REST adapter → Request tracing: normalizes request
- WebSocket adapter → Request tracing: normalizes request
- Request tracing → Authentication: propagates context
- Authentication → Route matching: authenticates request
- Route matching → Rate limiting: selects route
- Rate limiting → Redis: checks limits
- Rate limiting → OPA authorization: passes request
- OPA authorization → OPA service: evaluates policy
- OPA authorization → Pipeline executor: authorizes request
- Pipeline executor → Pipeline registry: loads pipeline
- Pipeline executor → Pipeline steps: executes steps
- Pipeline steps → Backend connectors: invokes backend
- Pipeline steps → LiteLLM connector: calls model
- Backend connectors → Enterprise services: forwards operations
- LiteLLM connector → Enterprise services: sends completions
- Pipeline executor → Resilience decorators: applies fallback
- Pipeline steps → Audit sinks: records events
- Protocol adapters → Client / agent: encodes response
- gRPC service → Client / agent: streams response
- REST adapter → Client / agent: returns response
- WebSocket adapter → Client / agent: streams response