Vercel Daemons can now call the services in their deployment through service bindings. Declare the binding on the daemon. It names the target service and the environment variable that receives the service's URL: [services.api]root = "api/"entrypoint = "main:app" [daemons.worker]root = "worker/"entrypoint = "Dockerfile"instances = { iad1 = 1 } [[daemons.worker.bindings]]type = "service"service = "api"format = "url"env = "API_URL" A daemon binding the api service, exposed to the worker as API_URL The daemon calls that URL like any other HTTP endpoint. Vercel handles the internal routing, authentication, and TLS, and the service stays private: await fetch(new URL('jobs/next', process.env.API_URL)); Calling the bound service from the daemon with a plain fetch Bindings point one way: services can't bind to daemons. Each instance keeps calling the deployment that started it, even after a promotion or rollback. Learn more about daemon service bindings in the docs.
AI NEWS JOURNAL
VercelAI NEWS / JOURNAL
Vercel Daemons can now call services with bindings
Vercel daemons can now access services in their deployment through service bindings, which expose the service's URL via an environment variable. The binding is declared in the daemon configuration, specifying the target service, format, and environment variable name. Daemons can then call the bound service using standard HTTP requests, with Vercel handling internal routing, authentication, and TLS. Service bindings are one-way only, meaning services cannot bind to daemons, and each daemon instance continues to communicate with its original deployment even after promotions or rollbacks.