# netease/pomelo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/netease-pomelo).**

11,880 stars · 2,866 forks · JavaScript · MIT · archived

## Links

- GitHub: https://github.com/NetEase/pomelo
- Homepage: http://pomelo.netease.com
- awesome-repositories: https://awesome-repositories.com/repository/netease-pomelo.md

## Description

Pomelo is a distributed Node.js game server framework designed for building scalable multiplayer game backends and real-time web applications. It employs a multi-process architecture to distribute application logic horizontally across a cluster of machines, enabling high concurrency and balanced network traffic.

The framework utilizes a WebSocket communication layer to manage bidirectional data exchange between diverse web clients and server clusters. It incorporates a remote procedure call system for triggering functions across remote server processes and uses Protocol Buffers for binary serialization to compress data payloads for efficient network transmission.

The system manages network traffic by separating frontend communication from backend logic processing. Additional capabilities include user authentication, a plugin architecture for extending server logic, and a centralized administration module for monitoring and controlling the health of distributed server processes.

## Tags

### Game Development

- [Game Backend Frameworks](https://awesome-repositories.com/f/game-development/game-backend-frameworks.md) — Provides a comprehensive distributed server platform for building real-time multiplayer games with high concurrency.
- [Scalable Game Server Frameworks](https://awesome-repositories.com/f/game-development/client-server-architectures/scalable-game-server-frameworks.md) — Implements a cluster architecture that distributes application logic to ensure high concurrency for real-time traffic. ([source](https://github.com/NetEase/pomelo/wiki/Preface))

### Networking & Communication

- [Multiplayer Game Servers](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers.md) — Provides a scalable distributed framework for hosting authoritative game logic and multiplayer sessions. ([source](https://github.com/netease/pomelo#readme))
- [Client-Server Communication Patterns](https://awesome-repositories.com/f/networking-communication/client-server-communication-patterns.md) — Exchanges data between servers and clients using request, response, and broadcast patterns across multiple platforms. ([source](https://github.com/netease/pomelo#readme))
- [Communication Layers](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-layers.md) — Provides a dedicated communication layer managing real-time bidirectional data exchange via WebSockets.
- [Websocket Connection Managers](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers.md) — Manages persistent WebSocket communication between diverse web clients and server clusters. ([source](https://github.com/NetEase/pomelo/wiki/Introduction-to--Lord-of-Pomelo))
- [Frontend Proxy Servers](https://awesome-repositories.com/f/networking-communication/network-traffic-processors/traffic-separators/frontend-proxy-servers.md) — Isolates client connection management from core game logic by routing traffic through dedicated frontend proxy servers.
- [Remote Procedure Calls](https://awesome-repositories.com/f/networking-communication/remote-procedure-calls.md) — Includes a remote procedure call system to trigger functions across remote server processes.
- [Network Traffic Routing](https://awesome-repositories.com/f/networking-communication/network-traffic-routing.md) — Implements a routing architecture that separates frontend connection management from backend game logic processing. ([source](https://github.com/NetEase/pomelo/wiki/Introduction-to--Lord-of-Pomelo))

### Data & Databases

- [Protocol Buffers Serializers](https://awesome-repositories.com/f/data-databases/binary-serialization-formats/protocol-buffers-serializers.md) — Uses Protocol Buffers to serialize and compress message payloads for efficient network transmission.
- [Protocol Buffers](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/protocol-buffers.md) — Utilizes a compact binary format for serializing structured data between clients and servers.
- [Real-Time Event Processing](https://awesome-repositories.com/f/data-databases/real-time-event-processing.md) — Processes high-frequency user actions instantly to maintain a responsive, low-latency multiplayer experience. ([source](https://github.com/NetEase/pomelo/wiki/Introduction-to--Lord-of-Pomelo))
- [Protobuf Serialization](https://awesome-repositories.com/f/data-databases/protobuf-serialization.md) — Uses Protocol Buffers to compress message payloads into a compact binary format. ([source](https://github.com/NetEase/pomelo/wiki/Preface))

### DevOps & Infrastructure

- [Capacity Scaling](https://awesome-repositories.com/f/devops-infrastructure/cluster-node-management/capacity-scaling.md) — Increases system throughput by distributing workloads across a cluster of server instances. ([source](https://github.com/NetEase/pomelo/wiki/Introduction-to--Lord-of-Pomelo))
- [Cross-Platform Connectivity Layers](https://awesome-repositories.com/f/devops-infrastructure/devops/backend-as-a-service-platforms/cross-platform-connectivity-layers.md) — Provides a standardized communication layer to connect diverse web clients to the server cluster via WebSockets.

### Software Engineering & Architecture

- [Distributed Systems Architectures](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems-architectures.md) — Employs a multi-process distributed architecture to scale application logic horizontally across a cluster of machines.
- [Multi-Process Architectures](https://awesome-repositories.com/f/software-engineering-architecture/multi-process-architectures.md) — Employs a multi-process architecture to distribute application logic across a cluster for horizontal scaling.
- [Plugin-Based Logic Extensions](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-logic-extensions.md) — Allows the injection of custom behavior into the network pipeline and server lifecycle via modular plugins.

### Web Development

- [Real-Time Frameworks](https://awesome-repositories.com/f/web-development/web-applications/real-time-frameworks.md) — Ships a framework designed specifically for building stateful web applications requiring instant bidirectional data synchronization.
- [Modular Server Extensions](https://awesome-repositories.com/f/web-development/component-based-architectures/component-based-architectures/server-component-architectures/modular-server-extensions.md) — Allows the creation of custom modules to add specialized functionality to the core server architecture. ([source](https://github.com/NetEase/pomelo/wiki/Preface))
- [Web Server Logic Extensions](https://awesome-repositories.com/f/web-development/web-server-logic-extensions.md) — Provides a plugin architecture to modify network protocols and extend server behavior. ([source](https://github.com/netease/pomelo#readme))

### System Administration & Monitoring

- [Game Server Administration Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/game-server-managers/game-server-administration-interfaces.md) — Provides a dedicated administrative interface to manage the lifecycle and health of distributed game server processes.
- [Server Management Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/server-management-interfaces.md) — Provides an administration interface to control the behavior and monitor the health of running server processes. ([source](https://github.com/NetEase/pomelo/wiki/Preface))

### Part of an Awesome List

- [Game Server Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/game-server-frameworks.md) — Node.js-based distributed game server framework.
- [Node.js Frameworks and Tools](https://awesome-repositories.com/f/awesome-lists/devtools/node-js-frameworks-and-tools.md) — Game server framework for Node.js.
