Stateless app

Een stateless app is een applicatieprogramma dat geen clientgegevens opslaat die in een sessie zijn gegenereerd voor gebruik in de volgende sessie met die client. Elke sessie wordt uitgevoerd alsof het de eerste keer is en reacties zijn niet afhankelijk van gegevens uit een eerdere sessie. Een stateful applicatie slaat daarentegen gegevens over elke client-sessie op en gebruikt die gegevens de volgende keer dat de client een verzoek indient.

Wanneer een applicatie stateless is, slaat de server geen enkele status over de client-sessie op. In plaats daarvan worden de sessiegegevens op de client opgeslagen en indien nodig aan de server doorgegeven. Dit is een belangrijke overweging bij het ontwikkelen van apps met offline first in gedachten. Bij deze benadering van softwareontwikkeling worden sessiegegevens lokaal opgeslagen op het apparaat van de eindgebruiker als er geen internetverbinding beschikbaar is, en geĆ¼pload en gerepliceerd in de cloud als er een verbinding beschikbaar komt.

De gedistribueerde architectuur die horizontale schaalbaarheid mogelijk maakt in cloud computing heeft geleid tot hernieuwde belangstelling voor stateless apps en stateless app-componenten. Een van de redenen is dat wanneer de componenten van een app stateless zijn, ze gemakkelijk opnieuw kunnen worden ingezet in het geval van een storing en kunnen worden uitgeschaald om veranderingen in de belasting op te vangen. Een andere reden is dat wanneer apps stateless zijn, ze gemakkelijk kunnen worden verbonden met andere apps via applicatieprogramma-interfaces (API's).

Functioneel programmeren, dat vaak wordt gebruikt voor microservices en containerisatie, heeft ook de belangstelling voor stateless apps aangewakkerd. Functioneel programmeren is een benadering van softwareontwikkeling die gebruikmaakt van zeer kleine segmenten van onveranderlijke code. Elke functie voert zijn taak uit alsof het voor de allereerste keer is en is zich bewust van, maar niet afhankelijk van, andere functies in het programma. Omdat alle onderdelen van het programma stateloos zijn, kunnen programmeurs functies op meerdere manieren samenvoegen zonder zich zorgen te hoeven maken dat afhankelijkheden het programma breken.