Some people wondered about the performance of Seam in bigger applications. We started a mid-sized application three days ago and I can only report good things.
The application supports call center agents it is composed of a SWT java solution that runs locally and interacts with other programms started on the agent's box. It then transmits data to a JBoss seam application to displays different input forms depending on the context the agent is in.
We have about four hundred concurrent user. They answered about 25.000 calls per day - most of them betwenn 9 and 12 am. I would estimate that this sums up to about 250.000 page impressions per day but I have to look at the exact numbers during the next days. I think the number of PIs will never be a problem. The only thing I was slightly concerned about was memory consumption due to the number of concurrent users.
We do not use application-server clustering at the moment and it does not seems necessary from a performance point of view (The application is not mission critical so reliability is not that much of an issue). The application server runs on a dual Xenon 2.4 Ghz on an Novell Cluster (not a good choice btw). During the morning the server was using about 15% cpu occiasonally peaking up to 20%. During the slower evening hours it went down to 2-3% percent. Even during peak times there was no noticeable slow down or anything. It seemed happy with its initial amount of 1 GB memory and did not require more than 20 database connection to serve all users. It seems Gavin's mantra of the stateful facade has some truth in it.
It is hard to predict how many users we could serve so I will not try to. There will be much bigger projects ahead so we may know more than. At the moment I am just happy that performance is something we do not have to think about.
One thing to note in these numbers is that database performance is not a limiting factor in our setup. The backend is a huge (meaning: really expensive) Oracle database that scales effortlessly for such a small application. I think in the typical setup with the database on the same machine the database will most likely be the limiting factor.