Architecture

From intent
to model.

How Ventic connects a runtime, routes a request and accounts for its cost, with a diagram of every component.

01 —Request lifecycle

First verify, mask and reserve. Then generate.

  1. Clientagent · SDK
  2. Identitygateway → control
  3. Policycontrol
  4. PIIpii service
  5. Holdbilling
  6. Inferenceagent · runtime
  7. Settlegateway → billing
Step 01 / 07 · agent · SDK

Your agent sends a request

A coding agent, an internal app or the chat use the protocol they already speak: Chat Completions, Responses or Messages. Only the base_url changes.

  • Compatible with OpenAI and Anthropic clients
  • API key with spend and rate limits
Request inspectorexample
POST /v1/chat/completions
Summarise the contract of Mario Rossi, IBAN IT60 X054 2811 1010 0000 0123 456
Key budget€1.00 available
reservedcharged
02 —Declarative infrastructure

Write what you want. Ventic makes it real, and keeps it so.

GPU pools, deployments, routing and autoscaling are ventic.io/v1 resources. A reconciler brings them to the desired state, in dependency order.

team-model.yamlexample
apiVersion: ventic.io/v1kind: InferenceDeploymentmetadata:  name: team-modelspec:  runtime: vllm  model: qwen3.8-flash-next  computePoolRef: gpu-pool  desiredState: running---kind: InferenceRoutingPolicyspec:  deploymentRef: team-model
$ venticli apply -f team-model.yaml
✓ ComputePool gpu-pool Ready
✓ InferenceDeployment team-model Ready gen 3 · observed 3
◷ InferenceRoutingPolicy team-routing Blocked → waits for team-model
$ ▍
03 —Ventic Agent

The GPU calls the platform. Never the other way round.

The agent opens an outbound WSS connection and publishes the runtime inventory. Inference travels on that channel: the GPU server needs no inbound port.

Your network · GPU server
Ventic Agent
detected runtimes
vLLMSGLangllama.cppOllama
Ventic platform · Kubernetes
Control · agent relay
Gateway/v1 · SSE
Billing · PII · Telemetry
  1. 01 · PAIRINGAn authorised invitation binds the agent to your installation and tenant.
  2. 02 · INVENTORYInspects the configured runtimes instead of guessing from the model name.
  3. 03 · RELAYBounded frames and incremental streaming. A disconnected agent cannot complete someone else's work.
  4. 04 · UPDATESSigned manifests with hashes verified before installation.
04 —Switchyard routing

The right model for every request. At the right cost.

Switchyard scores the suitability of every authorised route and ranks candidates by cost. Frontier stays for the hard problems; the rest goes to your targets.

Candidate routeSuitabilityCost
qwen3.8-flash-nextCHOSENgpu-node-01 · on-prem
€
deepseek-v4.1-flashneocloud-eu-02 · FP8
€
kimi-k3.1BYOK
€€
frontier-modelcloud provider
€€€

The maximum cost is reserved on the wallet before dispatch.

Installation

A signed Kubernetes distribution, in four layers.

-edgeIngress and WAF
-appGateway, Control, Billing, portal
-dataPostgreSQL, Valkey, storage
-opsJobs, telemetry, backups
05 —Architecture

Everything inside your perimeter.
No exposed ports.

The platform runs on your Kubernetes. Agents on GPU servers connect outbound: no public IP, no VPN, no inbound ports.

Supported runtimes: vLLM, SGLang, llama.cpp, Ollama and more. Cloud providers connect with your own key (BYOK).

06 —GitOps

Inference becomes a step in your workflow.

GPU pools, deployments and routing are YAML files: you version them in Git and apply them from your CI/CD pipeline. Inference becomes part of the workflow: the pipeline brings up the resources it needs, runs the job and tears them down. No idle capacity to pay for, fully dynamic resources.

  • Review and change history in Git
  • venticli diff before applying
  • Rollback with a revert
# .gitlab-ci.yml · nightly job
- venticli apply -f infra/vast-h100.yaml
- python batch.py --base-url $VENTIC/v1
- venticli delete -f infra/vast-h100.yaml

vast.ai support

Need power right now? Ventic starts GPU machines on vast.ai in minutes, connects them as targets and uses them in routing like any other resource. You pay by the hour, only when needed.

Under the hood

Every request is authorised,
priced and accounted for.

What the platform really does between your client and the model: native protocols, routing, privacy, accounting and remote agents. All inside your cluster.

See the schemes
GATEWAY

Native protocol APIs

Chat Completions, Responses, Messages, FIM and token counting, plus embeddings, speech, transcription and vision.

ROUTING

Switchyard

Picks the most suitable model among the routes you are authorised for, then ranks by exact Decimal cost.

PRIVACY

Reversible PII boundary

Personal data becomes placeholders before the model and returns to the original in the response stream.

BYOK

Bring your own provider

Encrypted personal credentials, explicit sharing with your team and governed service fees.

LEDGER

Reserve, dispatch, settle

A bounded hold before every call, exact settlement after. Idempotent, no double charges.

MONEY

Wallets, top-ups, invoices

Group wallets, transfers, allocation schedules, reseller commissions, card or bank payment and invoices.

AGENT

Remote runtimes, no open port

A Rust agent connects outbound over WSS and serves vLLM, llama.cpp, Ollama or SGLang from your hardware.

DATA

Exports and erasure

AES-256-GCM encrypted content, JSON exports, optional chat archives on your S3 and content erasure.

SERVICES

Expert consultations

Upload a brief, get a quote, book a slot and receive the report: all in the portal.

TRUST

Company verification

Company identity and evidence reviewed by an operator before payments and reseller features unlock.

ALERTS

Notifications and audit

Grouped inbox, email and push via ntfy, and an audit entry for every change in the console.

CLI

venticli · OpenCode

Browser or device sign-in, declarative resources and a scoped catalogue for coding agents.

Signed licence lease (72 h max): on expiry inference stops, while billing, export and erasure stay available.

Schemes

How it works,
drawn out.

Five schemes from the real code: from a request’s path to the Kubernetes architecture of your installation.

Request lifecycle

Upstream success alone does not finish a request.

The gateway only completes a request with valid usage, bounded settlement and, where required, restoration of personal data.

01 Native requestChat Completions,Responses, Messages or FIMwith an API key02 Key → PrincipalTenant, wallet, models,limits. Rate limits onValkey03 Policy and routeSigned licence, modelcontrols, Switchyard, price04 PII sanitise (opt.)Placeholders out, encryptedmap kept05 Reserve the maximumBounded wallet hold with arequest fingerprint06 DispatchProvider, managed GPU orremote-agent relay07 Validate and restoreUsage verified, textrestored in the stream08 Settle and replyActual cost within thehold, then the reply orfinal SSE event
  • Gateway → Control → PII → Billing → provider
  • Exact order varies with operation, media and streaming
Accounting

Held before the call. Settled after it.

Every request is a state machine: an ambiguous outcome never loses its hold until there is evidence.

ReservedBounded hold, request ID andfingerprintDispatchedMarked before the upstreamcallSettledMeasured usage within theboundReleasedCancelled, expired or definitefailureUncertainAmbiguous outcome: the holdstayscancel / expireincompleteevidence-based reconciliation
  • Idempotent by request ID
  • Exact Decimal
  • Balanced entries + outbox
  • Key budgets count holds
Privacy

The model sees placeholders. Your users see their own data.

The reversible map is encrypted (AES-GCM), bound to tenant, user and context, and never leaves the cluster.

Input textScoped to tenantand userDetectorApproved model +patternsPlaceholders<NI_…> replaceseach spanModel providerNever receives theoriginalsStream castingRestores text,protocol IDsintactClientAuthorised outputwith originalvaluesEncrypted mapValkey, TTL, bound tocontextreversible mapping
  • Text only: images and audio are not anonymised
  • A model control can make PII mandatory
Ventic Agent

Your GPUs serve requests. Your firewall stays shut.

The agent opens an outbound WSS channel; requests return on that same channel. It is not a remote shell.

GatewayAuthorised, pricedrequest for a remoterouteControl relayBounded frames on theagent's current channelRust agentInstallation-boundidentity, signed updatesLocal runtimevLLM · llama.cpp ·Ollama · SGLang · Strataoutbound WSS from the agentno inbound port
  1. 1An operator creates an invitation in the console
  2. 2The agent pairs; the fingerprint is approved
  3. 3It discovers runtimes and publishes the inventory
  4. 4Models go live after publication and feature checks
Architecture

One installation, four namespaces, one cluster you own.

The chart creates four dedicated namespaces. Shared controllers and storage remain separately installed prerequisites.

OUTSIDEinstallation-edgeinstallation-appinstallation-datainstallation-opsUsers and API clientsBrowser, SDKs, CLIExternal (outbound)Upstream models,Licman lease, Stripe,SMTP, S3, remoteagentsTraefikIngress and TLSWAFNginx +ModSecurity CRSPortal · DocsMarketing siteKeycloakOIDC · SSO · MFAControl APIPolicy, agent relayGatewaySwitchyardBillingDecimal ledgerPII boundaryReversible mapsOpen WebUI+ SearXNG (optional)ntfy · exporterPush, chat archivesPostgreSQLCloudNativePGValkeyRate limits, PII mapsObject storageS3BackupBarman WALReconcilerLease, journalCronJobs + KEDAFixed job catalogueOpenTelemetryPersistent queueGreptimeDBMetrics, logs,tracesPerses · PrometheusDashboardsOTLP
  • Installed separately as prerequisites: Traefik, cert-manager, KEDA, CloudNativePG, an enforcing CNI, StorageClass
Get started

Get in touch
to get started.

We help you install Ventic on your infrastructure and start directly from the workload you want to put in production.