Stateful Routing: Figma's Secret to Large-Scale Multiplayer
- Figma는 대규모 멀티플레이어 기능을 위해 stateful routing을 사용합니다. 🌐
- Stateless routing은 로드 밸런서를 통해 여러 웹소켓 서버에 연결하지만, Figma 규모에서는 중앙 집중식 메시지 브로커로 인해 병목 현상이 발생할 수 있습니다. 🚦
- Stateful routing은 각 문서에 대한 웹소켓 연결을 특정 서버로 라우팅하여 확장성을 확보합니다. 🔑
- Figma는 최대 500명의 참가자를 지원하며, 이 중 200명까지 동시에 편집할 수 있습니다. 🧑💻
- Figma는 필요에 따라 웹소켓 서버를 생성하고 관리하기 위해 오케스트레이션 서비스를 사용합니다. ⚙️
- Hathora는 멀티플레이어 애플리케이션을 위한 서버 오케스트레이션 도구로, 동적 컨테이너 관리를 지원합니다. 🎮
- Hathora를 사용하면 웹소켓 서버를 쉽게 배포하고 관리할 수 있으며, 사용량에 따라 비용이 청구됩니다. 💰
- Hathora Cloud SDK를 사용하여 방을 생성하고 관리하며, GitHub Actions를 통해 배포를 자동화할 수 있습니다. 🚀
- 세션 서버는 웹소켓 이벤트를 처리하고, 방 객체를 통해 클라이언트 간의 상태를 동기화합니다. 🔄
- Figma 아키텍처를 구현하는 것은 복잡하지만, Hathora와 같은 도구를 사용하면 더 쉽게 구축할 수 있습니다. ✅