···2020| backfill | backfill events are mixed into the live queue and prioritized (per-repo, acting as synchronization barrier) by the server. | backfill simply inserts historical events (`live: false`) into the global event log. streaming is just reading this log sequentially. synchronization is the same as tap, `live: true` vs `live: false`. |
2121| event types | `record`, `identity` (includes status) | `record`, `identity` (handle), `account` (status) |
22222323+### multiple relay support
2424+2525+`hydrant` supports connecting to multiple relays simultaneously for both firehose ingestion and crawling. when `RELAY_HOSTS` is configured with multiple URLs:
2626+2727+- one independent firehose stream loop is spawned per relay
2828+- one independent crawling loop is spawned per relay
2929+- each relay maintains its own firehose / crawler cursor state
3030+- all ingestion loops and crawlers share the same worker pool and database
3131+- all crawlers share the same pending queue for backfill
3232+2333## configuration
24342535`hydrant` is configured via environment variables. all variables are prefixed with `HYDRANT_` (except `RUST_LOG`).
···5262| `ENABLE_CRAWLER` | `false` (if Filter), `true` (if Full) | whether to actively query the network for unknown repositories. |
5363| `CRAWLER_MAX_PENDING_REPOS` | `2000` | max pending repos for crawler. |
5464| `CRAWLER_RESUME_PENDING_REPOS` | `1000` | resume threshold for crawler pending repos. |
5555-5656-### multi-relay crawling
5757-5858-the crawler supports querying multiple relays simultaneously. when `RELAY_HOSTS` is configured with multiple URLs:
5959-6060-- one independent crawling loop is spawned per relay
6161-- each relay maintains its own cursor state
6262-- all crawlers share the same pending queue for backfill
6363-- firehose connection uses the first relay in the list
64656566## api
6667