Skip to content

[tuning]

Performance and concurrency tuning for the processor, tileserver pipeline, and alerter.

Warning

Do not change these settings without talking to us in Discord first. Bad values can cause queue starvation, rate-limit lockouts, or memory blowups. The defaults are reasonable for most installs.

Processor

Field Type Default Description
reload_interval_secs int 60 How often the processor reloads config and cached state.
encounter_cache_ttl int 3600 TTL (seconds) for the encounter de-duplication cache.
worker_pool_size int 4 Number of webhook processing workers.
batch_size int 50 Max items processed per batch.
flush_interval_millis int 100 How often pending batches are flushed.

Tileserver

Tiles are generated asynchronously: webhook handlers submit tile requests to a queue, dedicated workers POST them to the tileserver, and webhook payloads are held in the sender until the tile resolves or the deadline expires (in which case the fallback URL is used). This prevents a slow tileserver from blocking webhook processing.

Field Type Default Description
tileserver_concurrency int 2 Tile worker goroutines (parallel POSTs to the tileserver).
tileserver_timeout int 10000 HTTP timeout per tile POST (ms).
tileserver_queue_size int 100 Max pending tile requests. Overflow uses the fallback URL.
tileserver_deadline int 10000 Max time (ms) a payload waits for its tile before falling back.
tileserver_failure_threshold int 5 Consecutive failures before the circuit breaker opens.
tileserver_cooldown_ms int 30000 How long the breaker stays open before retrying.
render_pool_size int 8 Concurrent render goroutines.
render_queue_size int 100 Max buffered render jobs.
delivery_queue_size int 200 Max buffered delivery jobs.

Alerter

Field Type Default Description
max_database_connections int 15 Max database connections per worker.
concurrent_matched_processors int 10 Pre-matched payloads processed concurrently.
matched_max_queue_size int 5000 Max queued matched items before backpressure kicks in.
concurrent_discord_destinations int 10 Concurrent Discord DM/channel sends per bot.
concurrent_telegram_destinations int 10 Concurrent Telegram sends per bot.
concurrent_discord_webhooks int 10 Concurrent Discord webhook sends.

For outbound delivery, lower concurrency reduces the chance of hitting global rate limits.