Skip to main content
Everything you need to run Hyrex reliably at scale.

Production on Hyrex Cloud

Hyrex Cloud handles infrastructure, scaling, and monitoring automatically.

Environment Setup

  1. Set Your API Key
# Production API key
export HYREX_API_KEY="prod_hx_..."
  1. Configure App for Workers
# hyrex_app.py
from hyrex import HyrexApp

app = HyrexApp("production-app")

Deployment

Deploy workers using Docker:
FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["hyrex", "run-worker", "hyrex_app:app"]
Run with your API key:
docker run -e HYREX_API_KEY=$HYREX_API_KEY myapp:latest

Monitoring

Access production metrics at hyrex.io/cloud:
  • Task throughput and latency
  • Worker health and utilization
  • Error rates and alerts
  • Queue depths and processing times

Best Practices

  1. Use separate API keys for dev/staging/prod
  2. Set num_processes based on task type
  3. Configure alerts in Hyrex Cloud dashboard
  4. Use queues to separate workload types

Production Checklist

Pre-Deployment

  • Load test your tasks to determine resource needs
  • Configure appropriate task timeouts
  • Set up error tracking (Sentry, etc.)
  • Plan queue structure for workload separation
  • Document task dependencies

Deployment

  • Use environment variables for configuration
  • Set up secrets management
  • Configure resource limits
  • Enable health checks
  • Set up log aggregation

Post-Deployment

  • Configure monitoring dashboards
  • Set up alerts for key metrics
  • Create runbooks for common issues
  • Schedule regular performance reviews
  • Plan for capacity scaling

Scaling Strategies

Queue Design

# Separate queues by priority and resource needs
@hy.task(queue="critical", max_retries=5)
def process_payment(ctx): ...

@hy.task(queue="batch", timeout_seconds=3600)
def generate_report(ctx): ...

@hy.task(queue="io-heavy", max_concurrency=50)
def fetch_external_data(ctx): ...

Worker Scaling

# Run workers for specific queue patterns
# Process all queues
hyrex run-worker app:app

# Process specific queue pattern
hyrex run-worker app:app --queue_pattern "critical-*"

# Process multiple queue patterns
hyrex run-worker app:app --queue_pattern "email-*" --num_processes 5
hyrex run-worker app:app --queue_pattern "batch-*" --num_processes 20

Next Steps