During undergrad i opted to take a network programming course using the POSIX sockets for linux. As a reference we used the book Internetworking using TCP/IP (comer and stevens). 2008 its a pretty dated and still applicatable texts which takes one through several server designs.
One design that is not really featured in the book is the case there a client connects to the backend application server sends multiple requests to the server over a single TCP connection. Since multiple requests comes via the slave socket to the server and responses send via the same slave socket. The slave socket is becomes congested as response and requests are received via the same socket, would it be a better option to allow for a second TCP connection between the to end-points to allow full duplex communication speed? What other architectures can be used to improve server performance?