For a session-managed application, a PAS for OpenEdge instance handles requests over the same client connection sequentially (single-threaded), guaranteeing that each request completes before the subsequent request is executed. For bound connections, the server responds as quickly as the general server load permits, while limiting the number of clients that the server can service at a time to the maximum number of ABL sessions available. For unbound connections, the server can handle a higher number of client requests, but with decreasing response as the number of clients increases for the same number of available ABL sessions to handle them. Session-managed clients might also be able to increase overall response by implementing an asynchronous request model to manage requests.
For a session-free application, a PAS for OpenEdge instance handles all client requests in parallel (multi-threaded). This can increase the overall response for the same number of clients over an unbound session-managed application, depending on the underlying hardware and software resources of the server and the resource requirements for each session-free request. Because PAS for OpenEdge runs all session-free requests in parallel, session-free clients must generally implement an asynchronous request model that verifies the order of responses, if response order matters.