How easy is it to migrate from another platform?
How easy is it to migrate from another platform?
fal.App class with setup() and endpoint methods. fal has step-by-step migration guides for Replicate, Modal, RunPod, and generic Docker servers.Can I export metrics to my own monitoring stack?
Can I export metrics to my own monitoring stack?
How do I improve runner utilization?
How do I improve runner utilization?
keep_alive and scaling_delay. Lowering keep_alive reduces idle time by shutting down runners sooner after they finish processing, which avoids paying for runners that are waiting for requests that never come. Increasing scaling_delay prevents fal from spinning up new runners too quickly during short traffic bursts, giving existing runners a chance to absorb the load first. Together these help you avoid over-provisioning. For further tuning, max_multiplexing lets a single runner handle multiple requests concurrently, and concurrency_buffer pre-warms runners ahead of demand. See Optimizing Costs for the full set of strategies.How do I control retry behavior?
How do I control retry behavior?
skip_retry_conditions on your app (e.g., skip_retry_conditions=["timeout"] if your model legitimately takes a long time). You can also disable retries for individual responses by setting the X-Fal-Needs-Retry: 0 header from your endpoint, or per-request by the caller with the X-Fal-No-Retry: 1 header.How am I billed for Serverless?
How am I billed for Serverless?
setup(), idle time (including keep_alive), active request processing, draining, and teardown. You are not billed for pending time or container image pulls. See Serverless Pricing for the full breakdown by runner state.Am I billed for idle runners?
Am I billed for idle runners?
IDLE state are billed at the same per-second rate as running requests. The keep_alive setting controls how long a runner stays alive after finishing its last request. Set keep_alive = 0 to shut down immediately after each request, or use min_concurrency to keep warm runners available. See Optimizing Costs for strategies to balance cost and cold starts.What GPU types are available?
What GPU types are available?
How do I reduce cold start times?
How do I reduce cold start times?
min_concurrency to keep runners warm, using FlashPack for faster container pulls, storing model weights on persistent storage (/data) to avoid re-downloads, and optimizing your container image. See Optimizing Cold Starts for the full guide.What is the /data volume?
What is the /data volume?
/data. Files written to /data persist across requests, runner restarts, and deployments. It is backed by a multi-layer cache (local NVMe, datacenter cache, global object store) and is the recommended place to store model weights, datasets, and configuration files.Can I use my own Docker image?
Can I use my own Docker image?
How does autoscaling work?
How does autoscaling work?
min_concurrency (minimum warm runners), max_concurrency (maximum runners), max_multiplexing (requests per runner), and keep_alive (idle timeout). See Scaling Your Application for details.What is the maximum request timeout?
What is the maximum request timeout?
request_timeout setting in your app class. Callers can also set a client-side start_timeout to limit how long they wait before processing begins.Can I run multiple models on one endpoint?
Can I run multiple models on one endpoint?
setup() and route between them based on request input, or use multi-app routing to serve different models from different endpoints within a single deployment. You can also use runner hints to pin requests to runners with specific models loaded.How do I rollback a bad deployment?
How do I rollback a bad deployment?
Can I access logs from my running app?
Can I access logs from my running app?
fal apps runners), and through the Platform APIs. You can also configure log drains to forward logs to external services. See Logging for how to emit structured logs from your app.Do concurrency limits apply to my own endpoints?
Do concurrency limits apply to my own endpoints?
max_concurrency scaling configuration, not by the platform-level account concurrency limit.