Releases: pokt-network/redirect-service
v1.5.0-dev
feat: Add WebSocket, gRPC support and fix single backend buffering
- Change default retry policy to fail-fast for better single backend performance
- Add tryBackendDirect for zero-copy streaming without response buffering
- Add WebSocket support with Hijacker interface implementation
- Add gRPC support with h2c (HTTP/2 cleartext) handler
- Add request kind detection for websocket and grpc in metrics
- Add Flusher interface to responseWriterWrapper for streaming
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.5.0-dev
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.5.0-dev
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-bbdc169
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.5.0-dev-linux-amd64 - Linux (arm64):
taiji-v1.5.0-dev-linux-arm64 - macOS (Intel):
taiji-v1.5.0-dev-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.5.0-dev-darwin-arm64
Full Changelog: v1.4.0...v1.5.0-dev
v1.5.0
Merge pull request #3 from pokt-network/feat/websocket-grpc-support
feat: Add WebSocket, gRPC support and fix single backend buffering
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.5.0
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.5.0
ghcr.io/pokt-network/taiji:1.5
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-c5b8c01
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.5.0-linux-amd64 - Linux (arm64):
taiji-v1.5.0-linux-arm64 - macOS (Intel):
taiji-v1.5.0-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.5.0-darwin-arm64
What's Changed
- feat: Add WebSocket, gRPC support and fix single backend buffering by @jorgecuesta in #3
Full Changelog: v1.4.0...v1.5.0
v1.4.1
Merge pull request #3 from pokt-network/feat/websocket-grpc-support
feat: Add WebSocket, gRPC support and fix single backend buffering
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.4.1
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.4.1
ghcr.io/pokt-network/taiji:1.4
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-c5b8c01
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.4.1-linux-amd64 - Linux (arm64):
taiji-v1.4.1-linux-arm64 - macOS (Intel):
taiji-v1.4.1-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.4.1-darwin-arm64
What's Changed
- feat: Add WebSocket, gRPC support and fix single backend buffering by @jorgecuesta in #3
Full Changelog: v1.4.0...v1.4.1
v1.4.0
Merge pull request #2 from pokt-network/enhance/metrics
feat: Add retry-aware metrics and context-driven metric recording
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.4.0
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.4.0
ghcr.io/pokt-network/taiji:1.4
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-664ab07
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.4.0-linux-amd64 - Linux (arm64):
taiji-v1.4.0-linux-arm64 - macOS (Intel):
taiji-v1.4.0-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.4.0-darwin-arm64
What's Changed
- feat: Add retry-aware metrics and context-driven metric recording by @jorgecuesta in #2
New Contributors
- @jorgecuesta made their first contribution in #2
Full Changelog: v1.3.1...v1.4.0
v1.4.0-dev
Update Grafana dashboards and workflows for enhanced RPC metrics observability
Highlights:
- Refactor Prometheus queries in Grafana dashboards to include
kind="rpc"for accurate RPC-based metric insights. - Replace static durations (e.g.,
5m) with dynamic rate intervals ($__rate_interval) for consistency and better adaptability of panels. - Synchronize titles and labels across dashboards to emphasize RPC context (e.g., "Request Rate" → "RPC Request Rate").
- Ensure metrics such as latencies, error rates, and overheads clearly distinguish RPC-specific data.
- Minor cleanup in
.github/workflows/docker-build.ymlto streamline arguments and remove unused lines.
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.4.0-dev
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.4.0-dev
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-1d1a866
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.4.0-dev-linux-amd64 - Linux (arm64):
taiji-v1.4.0-dev-linux-arm64 - macOS (Intel):
taiji-v1.4.0-dev-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.4.0-dev-darwin-arm64
Full Changelog: v1.3.1...v1.4.0-dev
v1.4.0-dev.1
feat: Add retry-aware metrics and context-driven metric recording
Enhancements:
- Introduced
metricsWrappermiddleware to ensure consistent metric recording on all requests. - Added retry-aware labels (
kind,retried) to proxy metrics for enhanced observability. - Extended Prometheus metrics with improved dimensionality:
proxy_requests_total,proxy_request_duration_seconds, and others now includekindandretried.
- Created
metricsContextto streamline metric data management across request lifecycle. - Introduced backend normalization for improved metric label cardinality.
- Improved error handling by deferring metric recording regardless of backend or request failures.
Monitoring:
- Updated metrics to guarantee labels reflect retries and backend health accurately.
- Added common utilities such as
getRequestKindandboolToStringfor consistent label values. - Integrated structured metrics recording with new middleware to reduce repeated logic.
Code Quality:
- Replaced direct metric increments in handlers with centralized recording using
metricsWrapper. - Modernized backend parsing logic with functions like
normalizeBackendLabelfor higher configurability.
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.4.0-dev.1
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.4.0-dev.1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-c48c02d
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.4.0-dev.1-linux-amd64 - Linux (arm64):
taiji-v1.4.0-dev.1-linux-arm64 - macOS (Intel):
taiji-v1.4.0-dev.1-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.4.0-dev.1-darwin-arm64
What's Changed
New Contributors
Full Changelog: v1.3.0...v1.4.0-dev.1
v1.3.1-dev
Improve retry logic for load balancing: ensure unique backends are tried, add max attempts safety limit
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.3.1-dev
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.3.1-dev
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-c525538
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.3.1-dev-linux-amd64 - Linux (arm64):
taiji-v1.3.1-dev-linux-arm64 - macOS (Intel):
taiji-v1.3.1-dev-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.3.1-dev-darwin-arm64
Full Changelog: v1.3.0...v1.3.1-dev
v1.3.1
Adding Simple Weighted RR Balancing (#1)
- Add weighted round-robin load balancing support
- Improve retry logic for load balancing: ensure unique backends are tried,
- Add max attempts safety limit
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.3.1
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.3.1
ghcr.io/pokt-network/taiji:1.3
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-af7f187
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.3.1-linux-amd64 - Linux (arm64):
taiji-v1.3.1-linux-arm64 - macOS (Intel):
taiji-v1.3.1-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.3.1-darwin-arm64
What's Changed
New Contributors
Full Changelog: v1.3.0...v1.3.1
v1.3.0
feat: Migrate to YAML configuration with health checks (v1.3.0)
Major Changes:
- Replace CSV configuration with YAML format for better structure
- Add active health checks with configurable intervals and thresholds
- Add passive health monitoring based on 5xx errors
- Add fallback backend support when primaries fail
- Preserve health states during hot config reloads
- Add comprehensive health metrics and alerting
Configuration:
- Rename CSV_PATH to CONFIG_PATH environment variable
- Support health check configuration per service (method, timeout, payload, failure_threshold)
- Add fallback backends for high availability
- Preserve backward compatibility with existing features
Health Monitoring:
- Active checks: Every 10 seconds via cron
- Passive checks: Track 5xx errors and connection failures
- Recovery: Single successful check marks backend healthy
- Only track passive health when active checks configured
Metrics Added:
- proxy_backend_health_status{subdomain,backend}
- proxy_health_checks_total{subdomain,backend,result}
- proxy_fallback_requests_total{subdomain}
- proxy_all_backends_unhealthy_total{subdomain}
Documentation:
- Updated README with YAML configuration examples
- Added health check behavior documentation
- Updated Grafana dashboard with health check panels
- Added TaijiAllBackendsUnhealthy critical alert
Code Quality:
- Remove unused serviceName parameter from parseBackendConfig
- Fix resetAt nil dereference in rate limit error handling
- Ensure rate limit headers only set when check succeeds
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.3.0
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.3.0
ghcr.io/pokt-network/taiji:1.3
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-4d9d203
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.3.0-linux-amd64 - Linux (arm64):
taiji-v1.3.0-linux-arm64 - macOS (Intel):
taiji-v1.3.0-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.3.0-darwin-arm64
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Add distributed rate limiting with Redis and latency breakdown metrics
This release adds production-ready distributed rate limiting with Redis
and detailed latency metrics to identify bottlenecks.
Rate Limiting:
- Distributed sliding window rate limiting across multiple Taiji instances
- Redis-backed shared state for consistent enforcement
- Per-subdomain rate limit configuration (e.g., 100/1m, 1000/1h)
- Proper client IP extraction (Forwarded, CF-Connecting-IP, X-Forwarded-For)
- Standard headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
- Graceful degradation (fail open) when Redis unavailable
- Comprehensive Prometheus metrics for rate limit tracking
Latency Metrics:
- Add proxy_backend_duration_seconds metric (backend response time)
- Add proxy_overhead_duration_seconds metric (Taiji processing overhead)
- Add latency breakdown dashboard panels (P95, overhead %, stacked views)
- Measured overhead: 0.14ms (1.3% of total request latency)
Performance Optimizations:
- Pre-allocate common status code strings to reduce allocations
- Optimize Retry-Policy header parsing to skip processing when empty
Distributed Testing:
- Add docker-compose.yml with HAProxy for multi-instance testing
- Add test-distributed.sh for validating distributed rate limiting
- Configure docker-compose to always rebuild images
Monitoring:
- Add 7 new Grafana dashboard panels for latency breakdown
- Add TaijiProxyOverheadPercentageHigh alert (fires if overhead >30%)
- Update alert strategy to avoid noise
Documentation:
- Condense README for better readability while keeping all essentials
- Document rate limiting configuration and behavior
Docker Image
# Pull with version tag
docker pull ghcr.io/pokt-network/taiji:1.2.0
# Or pull latest release
docker pull ghcr.io/pokt-network/taiji:latestAvailable tags:
ghcr.io/pokt-network/taiji:1.2.0
ghcr.io/pokt-network/taiji:1.2
ghcr.io/pokt-network/taiji:1
ghcr.io/pokt-network/taiji:latest
ghcr.io/pokt-network/taiji:sha-bd386f8
ghcr.io/pokt-network/taiji:latest
Platforms:
- linux/amd64
- linux/arm64
Binaries
Download the pre-built binaries for your platform:
- Linux (amd64):
taiji-v1.2.0-linux-amd64 - Linux (arm64):
taiji-v1.2.0-linux-arm64 - macOS (Intel):
taiji-v1.2.0-darwin-amd64 - macOS (Apple Silicon):
taiji-v1.2.0-darwin-arm64
Full Changelog: v1.1.1...v1.2.0