Scalability Concerns
Obviously the first goal of having a server farm is to make your web application more scalable and more available. With more servers in your cluster you will have more system resources to create more sessions. But is it the whole story? Can you make your application more scalable by simply adding more computers to the cluster? The answer is not always yes.
Most probably your web application needs a database back-end. That's where you need to be careful when it comes to scalability. uniGUI HyperServer and HyperServer Server Farm will highly increase your ability to create more sessions, but they will not automatically make your database back-end more scalable.
In a simple uniGUI application your application will consume one database connection. This scheme may work fine for a few hundreds of sessions, but as the number of sessions increases, dedicating a database connection to each session will lead you into trouble. At this point connection pooling will come to your help.
There are several pooling methods that can be used to pool database connections. FireDAC library has built-in pooling capabilities that you need to enable if scalability is one of your concerns. If your database library doesn't have built-in pooling capability then you must consider using a middle-tier to take care of pooling. Data Abstract and kbmMW are examples of third-party middle-tier libraries for Delphi.
Please keep in mind that designing a scalable cluster is more an art than a science. This is especially true when you are dealing with the database back-end of your web application. You may be able to open up to 10,000 sessions simply by adding two new servers to your cluster, but your database server won't automatically scale up — you need to make sure that your database back-end is able to keep up with the increased load.
Also see: Cluster Operation Modes