finds.dev

NetEase/pomelo

A fast,scalable,distributed game server framework for Node.js.

View on GitHubHomepage ↗

★ 11,859JavaScriptMITupdated Aug 2023

// the take

Pomelo is NetEase's distributed game server framework for Node.js, built around a multi-process architecture that splits connector (frontend, holds client sockets) and logic (backend) servers connected over RPC. It's for teams building real-time multiplayer games or chat-style apps who need horizontal scaling across processes/machines rather than a single Socket.IO server.

The frontend/backend split (connector vs. logic servers talking RPC) is the correct pattern for scaling a stateful real-time system, and it's been proven in production by NetEase on actual MMOs, not just a toy example. Transport support is genuinely broad — TCP, WebSocket, MQTT, UDP connectors all live under lib/connectors/ as swappable implementations. The core is kept small and plugin-based (channel, session, backendSession, pushScheduler are separate components), so you can replace or extend pieces instead of forking the framework.

The code predates modern Node entirely — callback-style throughout, no async/await, no TypeScript, no ES modules — so it reads and debugs like 2013-era JS even though the last push is 2023. Most of the real documentation (tutorials, the Lord of Pomelo demo) lives on the GitHub wiki and an external site rather than in the repo, which rots over time and already shows signs of it. Client support list (Flash, cocos2d-x) signals how dated the target platforms are; there's no guidance for TLS/WSS in modern deployment contexts or containerized/k8s setups. Activity has clearly slowed to maintenance-only — this is closer to a historically important reference architecture than a framework you'd start a new project on today.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
11,859
Forks
2,846
Language
JavaScript
License
MIT
Last commit
10 Aug 2023

// nearby

If pomelo isn't quite it.

All repos →