A high-performance backend system for managing residential proxy nodes using WebSockets and Valkey (Redis-compatible). This service acts as the central router that connects API requests to distributed residential nodes and relays responses back in real time.
This project implements a node-based proxy architecture where:
- Nodes (clients) connect via WebSocket
- Each node acts as an exit point for HTTP requests
- The server assigns jobs to nodes
- Nodes execute requests and return results
- The server relays responses back to API consumers
Core Components:
-
Node Manager
- Tracks node lifecycle
- Stores metadata in Valkey
- Maintains node states:
idle,busy,blocked
-
WebSocket Layer
- Persistent connection with nodes
- Handles heartbeat, job dispatch, and result collection
-
Trigger API
- Accepts external requests
- Selects available node
- Dispatches job
- Waits for response
-
Valkey
- Stores node registry
- Tracks node status
- Enables fast lookup
- Install Go 1.26+, docker
- Install [air](https://github.com/air-verse/air]
- Clone the repository
- Run
go mod download - Setup
.envfile with these values:
VALKEY_HOST=localhost
VALKEY_PORT=6379
PORT=3000- Run
airand visithttp://localhost:3000
- Install Node v24.14.0+
- Run
cd docs/demo-project - Run
npm i - Run
npm run devand visithttp://localhost:5173
- Install Yaak
- Make sure the Backend is running
- Import
docs/yaak.json
