A stateless app is an application program that does not record data generated in one session – such as information about user settings and events that occurred -- for use in the next session with that user. The trend toward cloud computing is driving interest in stateless apps.
In a computing context, “state” can be defined as a set of conditions that exist at a given point in time. A stateful application records information about changes in state caused by events during a session, including those caused by user interaction. That means that the application can call up information that will enable configuration changes and so on to remain consistent from one session to the next. The need to retrieve state information, which may be stored on the client device or a remote server, can increase the demand for bandwidth.
Web apps are usually stateful, as are most of the APIs (application-program interfaces) that interconnect them with other web apps and services. In a cloud environment, however, it’s preferable that apps be stateless for the sake of scalability and portability. Furthermore, many important cloud technologies are not equipped to deal with state data. Amazon, for example, recently announced that it was implementing what it called sticky sessions – a mechanism for passing on state data – because its elastic load balancing (ELB) implementation was found to break stateful apps.