일반적으로 state를 가질 수 없다.
다른 workers간에 공유하고 싶은 데이터의 한 종류
durable objects없이는 불가능해.

해당 코드는 cloudflare의 지역에 복사되어 퍼짐.
근데 한국의 cloudflare접속자와, 독일의 cloudflare접속자 들이 해당 웹사이트 접속하면
해당 지역의 코드가 각각 실행됨. 다른 컴퓨터에서 실행되기 때문에 state를 유지하지 못함
cloudflare workers에 있는 state가 다른 지역으로 복제 되지 않기 때문.
그냥  cloudflare 한정된 얘기임
리턴하면 코드가 죽음.

KV database에 저장하면 해결되긴 함.

모든 사람이 한 방의 채팅방에 연결 되어있다면?
worker코드의 모든 실행들 간에 공유되는  state를 저장 할 수 있는 무언가가 필요 함.
그게 durable object.

durable object와 javascript 클래스를 작성하면, 그 자바스크립트 클래스가 cloudflare에 의해 기억 됨!
이 클래스가 cloudflare메모리로 가게 되고 모든 worker들이 접근 가능하게 되겠지.


carrot market에서 채팅을 할 수 없었던 이유는
next.js에서 실행되는 모든 함수들이 우리가 컴퓨터에 접근 권한이 없는 serverless환경에서 실행되기 때문.
그 환경에서 state는 지속 될 수가 없어. 항상 새 state가 되는거지. durable object는 채팅에 연결된 모든 사람을 유지 시키는 것.

+ Recent posts