Vercelのchangelogによると、DaemonsはFluid compute上のコンテナで、終了やクラッシュのあと再起動し、設定した台数をリージョンごとに維持する。対象として挙げているのは、Vercel Queuesのポーリング、Celery、BullMQ、RabbitMQ、Kafka、TemporalやCadenceのワーカー、受信接続なしでジョブを取りにいくGitHub Actions、GitLab、CircleCIのセルフホストランナーである。
設定はプロジェクト直下のvercel.json、vercel.ts、vercel.tomlのいずれかにdaemonsを書く。掲載例はworker/Dockerfileをiad1で1台起動するものだ。接続情報は本番の環境変数に置き、標準出力はプロジェクトのログに出る。CPUとメモリのメトリクスはObservability Plusで見られる。
ベータの制限はドキュメントに列挙されている。メモリは1、2、4、8GiBから選び、既定は2GiB。CPUアーキテクチャはLinux amd64のみ。SIGTERM後の猶予は既定10秒で、terminationGracePeriodSecondsにより最大3600秒まで延ばせる。Hobbyは1GiBか2GiBに限られ、チームあたり月10 Active CPU時間で、待ち時間は数えない。上限に達するとそのチームのデーモンはすべて止まり、翌月かProへの変更で再開する。Proは同時に16 vCPU、32GiBまでである。
プレビューデプロイ、受信HTTPやTCP、オートスケール、ローカルディスクの永続化、vercel devでの起動、ルートディレクトリがサブフォルダのプロジェクトは未対応だ。サーバレスの実行時間に収まらないワーカーを同じデプロイへ置く仕組みであり、台数は固定し、状態はBlobか外部のデータベースに置く前提で設計する。