Skip to main content

Production Hardening

Grpcavel is built to run in long-lived worker processes (RoadRunner), which requires special attention to stability.

Service Discovery Cache

In production, scanning directories and using reflection on every worker start is expensive. Cache your service definitions to improve startup speed:

php artisan grpc:cache

To clear the cache during deployment:

php artisan grpc:clear

Memory Management

To prevent memory leaks in long-running workers, Grpcavel:

  • Automatically flushes Laravel's query logs after every request.
  • Triggers garbage collection at strategic intervals.
  • Can be configured to restart workers after a certain number of requests or memory threshold (via RoadRunner config).

Database Resilience

Lost database connections (e.g., MySQL "gone away") are a common issue in persistent processes. Grpcavel's runtime:

  • Detects disconnected database states.
  • Automatically attempts to reconnect before processing the next request.
  • Ensures your application stays alive even if the database is briefly unavailable.