Levi DeHaan

Simple AI Router (SAR)

High-performance gRPC router for AI inference with intelligent load balancing, traffic filtering, and multi-cluster support

Status: completed · 2024-06-10

Overview

SAR is a high-performance gRPC-based router built in Go that intelligently distributes AI inference requests across multiple clusters, providing advanced load balancing, traffic filtering, and comprehensive monitoring capabilities.

Technologies

Go, gRPC, Protocol Buffers, Kubernetes, Docker, Prometheus, Grafana, Consul, etcd

Request Latency
<5ms
Throughput
50K+ RPS
Uptime
99.99%
Memory Usage
<100MB

Simple AI Router (SAR) - High-Performance AI Inference Router

SAR is a production-grade gRPC router built in Go that intelligently distributes AI inference requests across multiple clusters with advanced load balancing and traffic management capabilities.

Key Features

🚀 High-Performance Routing

  • gRPC-native: Built from ground up for gRPC protocol efficiency
  • Sub-millisecond latency: Optimized request routing with minimal overhead
  • Connection pooling: Persistent connections to backend services
  • Protocol buffer optimization: Binary serialization for maximum throughput

🎯 Intelligent Load Balancing

  • Round Robin: Equal distribution across healthy endpoints
  • Weighted Round Robin: Capacity-based traffic distribution
  • Least Connections: Route to least busy endpoints
  • Health-aware routing: Automatic failover for unhealthy services

🛡️ Advanced Traffic Filtering

  • Rate limiting: Per-client and global request throttling
  • Traffic shaping: Bandwidth and request size limits
  • Circuit breaker: Automatic service protection during failures
  • Request validation: Protocol buffer schema enforcement

🌐 Multi-Cluster Support

  • Cross-cluster routing: Intelligent traffic distribution across regions
  • Cluster affinity: Route requests to preferred clusters
  • Failover policies: Automatic cluster failover during outages
  • Geo-routing: Location-based intelligent routing

📊 Comprehensive Monitoring

  • Real-time metrics: Request rates, latencies, error rates
  • Distributed tracing: End-to-end request tracking
  • Health dashboards: Service and cluster health monitoring
  • Custom alerts: Configurable alerting for SLA violations

Architecture Example (Equivalent)

graph TD
    A[Client gRPC Requests] --> B[SAR Load Balancer]
    B --> C[Traffic Filter]
    C --> D[Route Selection Engine]
    D --> E[Connection Pool]
    E --> F[Cluster A]
    E --> G[Cluster B]
    E --> H[Cluster C]
    
    B --> I[Prometheus Metrics]
    I --> J[Grafana Dashboard]
    
    D --> K[Service Discovery]
    K --> L[Consul/etcd]
    
    C --> M[Rate Limiter]
    C --> N[Circuit Breaker]

Performance Characteristics (Equivalent)

MetricValue
Request Latency< 5ms (p95)
Throughput50K+ RPS per instance
Connection Pool1000+ concurrent connections
Memory Usage< 100MB per instance
CPU Usage< 5% under normal load

Configuration (Equivalent)

# sar-config.yaml
server:
  port: 8080
  grpc_port: 9090
  
load_balancer:
  algorithm: "weighted_round_robin"
  health_check_interval: "30s"
  
clusters:
  - name: "cluster-east"
    endpoints:
      - "inference-svc-1.cluster-east:9090"
      - "inference-svc-2.cluster-east:9090"
    weight: 60
    
  - name: "cluster-west"
    endpoints:
      - "inference-svc-1.cluster-west:9090" 
      - "inference-svc-2.cluster-west:9090"
    weight: 40

traffic_filter:
  rate_limit:
    requests_per_second: 1000
    burst_size: 100
  circuit_breaker:
    failure_threshold: 5
    timeout: "60s"

Deployment

# Build and deploy SAR
docker build -t sar:latest .
kubectl apply -f k8s/deployment.yaml

# Configure service discovery
consul kv put sar/clusters/config @sar-config.yaml

# Monitor performance
kubectl port-forward svc/grafana 3000:3000