Difference between the job of Serve Ingress and Proxy Actor?

The job of a Proxy Actor is taking a request and forwarding it to a replica, and the job of the serve ingress is taking a request and using deployment handle to forward it to a replica. On the docs it says that proxy actors can be disabled if only deployment handles are used. This confused me greatly.

  • A request is only forwarded through serve ingress on a serve application. And a request comes into cluster via proxy actor. Does that mean the only job of a proxy actor to receive the request and send it to a serve ingress replica?

The proxy actor is what handles all traffic incoming to the cluster over HTTP/gRPC. It does not contain any custom user-provided logic but instead routes to different applications and handles things like dataplane health checking when integrating with an external load balancer like ALB.

An “ingress” deployment that forwards to traffic to one or multiple downstreams is used when you want to add some custom logic such as model composition or dynamic routing based on payloads.

1 Like

Hey @eoakes sorry for late reply. Thanks for the explanation now it is more clear. So I’m understanding that it is possible for requests to go to a proxy actor on a worker node, and an ingress (say we’re using it) on a worker node and a deployment on a worker node and get back to the client without going through head node even once, am I correct?