Host-connection-pool max-connection and server pipelining limit with AWS load balancer

Hello, we are using akka http server and we were wondering how to properly setup the below

http {
      server {
        pipelining-limit = 5
        }
host-connection-pool {
       max-connections = 4
       }
}

To my understanding the pipelining limit limits how many requests can be opened per connection and the host connection pool limits how many connection the pool makes to the application. Is that correct? All the connections coming from the load balancer would look like they are coming from the same IP address, it this a problem for the settings above?

Apologies if the question seems trivial but I am genuinely struggling to undertand how to properly configure the http client in order to have it behave with the AWS load balancer in front of it.

Any help will be greatly appreciated.

Federico

The pipelining-limit controls how many requests can be sent over one connection without seeing any responses back. I recommend that you read this section in the docs (and maybe reconsider touching that)

The host-connection-pool is about the client side connection pools, for the server what you are looking for is the setting akka.http.server.max-connections also described in that same doc section.

hey, thanks a lot for linking the docs. I might have not phrased the question correctly… My concern is: having the load balancer forward the requests to the app under the same source ip, would this incur in hitting the max connections threshold and the pipelining limit sooner than wihtout a load balancer?

In my app i have a small tool that tells me what my ip address is, and if me or a colleague connects to the app, i get the same ip with a different port number at the end (format: XXX.XXX.XXX.XXX:portnumber).

Would this affect the backoff strategies used by akka resulting in timeouts/too many requests or not?

Thanks a lot in advance

There is no active connections per specific remote host limiting for the server, the limit is for all connections to that Akka HTTP server, regardless of if all connections are different clients or the same client.

The pipelining limit is for each of those connections, regardless of what clients on the other connections are doing.

If a specific number of connections with a specific number of pipelined requests will lead to timeouts completely depends on how long time the logic in your application handling the requests and the resources the server has to work with. You should always load test to know the limits of your application on the hardware you intend to run it on.