API는 보통 상태 비저장(stateless)으로 설계되므로 요청 데이터를 저장하지 않거나 세션 간에 정보를 유지하지 않습니다. 이러한 상태 비저장 특성은 확장 방법을 고려할 때 매우 중요합니다. 상태 비저장 API는 인스턴스 간 데이터 복제가 필요하지 않으므로 수평 확장을 구축하기가 보다 효율적이고 간편합니다. API 클라이언트가 특정 서버 인스턴스에 의존해서 기능하지 않으므로 시스템 관리자는 API 작업에 영향을 주지 않고 필요에 따라 VM을 추가하거나 제거할 수 있습니다.
상태 저장(stateful)이 된다고 해서 문제될 것은 없습니다. 실제로는 앱의 원하는 기능에 필수적일 수 있습니다. 그러나 상태 저장 앱에 대한 수평 확장을 실행하려면 작업이 훨씬 더 복잡해집니다. 이를 위해서는 저장된 데이터를 앱의 원래 버전에서 새 인스턴스로 복사해야 합니다.
반면 상태 비저장 앱 또는 API는 요청 데이터를 저장하지 않습니다. 메모리에 세션 데이터를 저장하지 않는 것입니다. 세션이 시작될 때마다 마치 앱이 처음으로 클라이언트를 만나는 것과 같습니다. 세션이 끝나면 세션을 기억하지 않고 “완전히 헤어지게” 됩니다.
어떤 VM이 API 호출에 응답하는지는 중요하지 않기 때문에 상태 비저장 앱은 수평 확장이 가능합니다. API 클라이언트는 API를 호스팅하는 VM을 무한히 호출할 수 있으므로 어떤 VM이 API 호출에 응답하는지는 중요하지 않습니다. 시스템 관리자는 API 작동에 영향을 주지 않고 원하는 만큼 많은 VM을 추가하거나 제거할 수 있습니다.