As APIs são geralmente projetadas como "sem estado", ou seja, não armazenam dados de solicitação nem retêm informações entre as sessões. Essa natureza sem estado é crucial ao considerar métodos de dimensionamento. As APIs sem estado não exigem replicação de dados entre instâncias, o que torna o dimensionamento horizontal mais eficiente e fácil de implementar. Os administradores do sistema podem adicionar ou remover VMs conforme necessário sem afetar as operações da API, pois o cliente da API não depende de instâncias específicas do servidor para funcionar.
Não há nada de errado em ter estado. Na verdade, isso pode ser essencial para o funcionamento desejado da aplicação. No entanto, a execução do dimensionamento horizontal para uma aplicação com estado é bem mais complicada. Seria necessário copiar os dados armazenados da versão original da aplicação para novas instâncias.
Uma aplicação ou API sem estado, por outro lado, é aquela que não armazena dados de solicitação. Ela não guarda dados da sessão na memória. Cada vez que uma sessão é iniciada, é como se a aplicação estivesse atendendo o cliente pela primeira vez. Depois que a sessão termina, é "adeus", sem memória da sessão.
O dimensionamento horizontal é possível para uma aplicação sem estado porque não importa qual VM esteja respondendo às chamadas de API. O cliente de API pode chamar um número infinito de VMs que hospedam a API, e isso nunca terá importância. Os administradores de sistema podem adicionar ou remover quantas VMs quiserem sem afetar a operação da API.