Configuration reference
Configure resource guards
Set the query timeout, row cap, concurrency cap and REST rate limit, live and without a restart.
Resource guards protect Kiwi Fabric, and the systems behind it, from runaway queries. Changes take effect immediately, with no restart, except for the REST rate limit, which is read when the server starts.
Setting guards requires superadmin.
In the Web UI, Resource Guards shows and edits the same four settings.

View the current settings#
kiwi fabric resource-guards-get
Change them#
kiwi fabric resource-guards-set --timeout 60 --max-rows 100000 --max-concurrent 16 --rate-limit 600
| Option | Meaning |
|---|---|
--timeout |
Query timeout in seconds |
--max-rows |
Maximum rows a single query result, or a single handler fetch, may return before it is rejected |
--max-concurrent |
Maximum concurrently running queries across REST, PostgreSQL wire and Arrow Flight |
--rate-limit |
REST requests allowed per minute (requires a server restart) |
The values above are examples, not recommendations. Choose limits that suit your sources and workloads.
The same settings are available in the Web UI and through the REST API (GET/PUT /api/admin/resource-guards-config).
Semi-join settings#
Cross-source semi-join behaviour is configured separately, per provider (batch size, iteration cap, parallel batches and the fallback policy). Use the Web UI, or GET /api/admin/semijoin-config and PUT/DELETE /api/admin/semijoin-config/{providerKey}. In the Web UI this is Fetch Config.

See Performance and resource limits.
What a rejection looks like#
A request stopped by a guard fails with an explicit error, and the span in telemetry is tagged with which guard fired and why. See Common problems.