HTTP
Worker A that declares a Service binding to Worker B can forward a Request object to Worker B, by calling the fetch() method that is exposed on the binding object.
For example, consider the following Worker that implements a fetch() handler:
{  "name": "worker_b",  "main": "./src/workerB.js"}name = "worker_b"main = "./src/workerB.js"export default {  async fetch(request, env, ctx) {    return new Response("Hello World!");  }}The following Worker declares a binding to the Worker above:
{  "name": "worker_a",  "main": "./src/workerA.js",  "services": [    {      "binding": "WORKER_B",      "service": "worker_b"    }  ]}name = "worker_a"main = "./src/workerA.js"services = [  { binding = "WORKER_B", service = "worker_b" }]And then can forward a request to it:
export default {  async fetch(request, env) {    return await env.WORKER_B.fetch(request);  },};