When many users access your Web application concurrently, you can keep only a limited number of values or objects waiting around between client requests. If you use multiple servers to scale and handle the load, this is especially troublesome. You quickly learn to minimize, or even eliminate, maintaining session state for users. You'll build stateless Web applications that distribute the load across multiple servers when scalability is a concern. Each transaction can be considered separate and distinct, so a particular transaction is free to execute on any available server.
Stateless applications require stateless components.
By not keeping object state between calls and not keeping any objects around between requests, the server uses its resources efficiently and handles more client requests. Traditional optimization techniques don't work on the Web. You must discard these objects as soon as possible to make room for others. It's futile to optimize access for one user. Writing task-oriented applications without holding onto objects and information between tasks isn't easy.