General
Production Checklist
Checklist for deploying a self-hosted Rivet Engine to production.
We recommend passing this page to your coding agent to verify your configuration before deploying.
Also review the general production checklist.
Security
- Validate that you have an admin token configured. Generate a strong, random token for engine authentication. See Configuration.
- Verify your admin token is not exposed publicly. Do not include the admin token in
RIVET_PUBLIC_ENDPOINTor anywhere accessible to clients. See Endpoints. - Configure TLS termination. Ensure connections to the engine are encrypted via a reverse proxy or load balancer.
Resources
- Set container resource limits. Recommended at least 1 CPU and 2 GB of RAM per Rivet Engine instance.
- Configure health checks. Set up liveness and readiness probes on port
6421at/health. Recommended timeout of 5 seconds.
Scaling
- Configure autoscaling for the Rivet Engine. Set target CPU utilization to 70% and memory to 80% to ensure headroom for traffic spikes. In Kubernetes, this is configured via a Horizontal Pod Autoscaler (HPA).
- Use 2+ engine nodes for redundancy. Running a single engine node is a single point of failure. Deploy at least two engine instances behind a load balancer.
- RocksDB only supports a single node. Do not run multiple RocksDB nodes. If you need horizontal scalability (recommended), switch to PostgreSQL or FoundationDB.
PostgreSQL
- Configure automated backups. Set up regular backups for your PostgreSQL database to prevent data loss.
- Configure failover. Set up a standby replica with automatic failover to ensure high availability.
- Consider FoundationDB for high throughput. If you expect high throughput, FoundationDB provides better performance, scalability, and uptime than PostgreSQL. Contact enterprise support for FoundationDB guidance.
NATS
- Use NATS for pub/sub (recommended). By default, Rivet uses PostgreSQL
LISTEN/NOTIFYfor pub/sub which has limited throughput. NATS significantly improves performance for high-traffic deployments. This is not needed if using RocksDB. See Configuration. - Deploy 2+ NATS replicas. Run at least two NATS replicas for high availability.
Monitoring
- Configure OpenTelemetry. The Rivet Engine supports exporting traces and metrics via OpenTelemetry. Set
RIVET_OTEL_ENABLED=1andRIVET_OTEL_GRPC_ENDPOINTto your collector endpoint (defaults tohttp://localhost:4317). AdjustRIVET_OTEL_SAMPLER_RATIOto control trace sampling (defaults to0.001). See Configuration. - Set up alerts for critical metrics. Monitor engine CPU, memory, request latency, and error rates. Configure alerts to notify your team before issues become outages.
Enterprise
- Contact enterprise support for production deployments. We can help with architecture review, scaling guidance, and FoundationDB support.