I am investigating alternatives for a application-server to handle lightweight requests with a very high degree of concurrency. Thing like redundancy and automatic fail-over would also be nice - this server will be interacting with a mission critical operation system.

The requests themselves are simple HTTP requests (XML would introduce unacceptable overhead), which will initiate an SQL query and return the result. The expected data source will be Teradata, accessible across the network through an ODBC bridge. I will consider a local database if the additional latency of the network between the server and RDBMS is too great. However, reliability and high concurrency are more pressing concerns that latency.

Due to my requirements, I have identified Yaws as a strong candidate for such a server. I have even managed to get it working under Solaris 10 (thanks klacke!), and talking over ODBC. One concern I do have however, is the ability of Yaws to maintain a persistant database connection across requests - establishing a new connection is probably not desireable given the high number of concurrent requests that could be made. It would be nice for new requests to be able to reuse the database connection - even if this means pooling or queuing queries.

Has anyone faced a similar problem that would care to share there experiances about? Any advice/feedback/comments on whether Yaws is an appropriate tool for the task, and if so the best approach to utilizing would be most appreciated =)