Decentralization
- Dominant language
- TypeScript
- Stars
- 25
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
Currently a single client acts as the host and all communications pass through them.
The host could provide connected clients with the peer IDs of all other clients so that they can also establish connections between each other (a “full-mesh topology”). At that point, various other possibilities arise: each client could be responsible for processing and emitting their own state updates instead of sending an action to be processed and emitted by the host. Then if the host drops out, the clients (via their existing connections) could agree a new host amongst themselves and keep playing.
A variation on this would be the host just transmitting a list of IDs for all connected peers to allow them to establish connections only in the case the host goes offline.
Decentralization would also mean storing match state in all clients, which would also be more robust.
This should probably be an optional feature.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue proposes optional full-mesh connections, peer state updates, host failover, and replicated match state, but names no files, entry points, or tests. Start by mapping the existing host-mediated transport and its connection lifecycle; done would require an agreed design and implementation plan covering the proposed alternatives.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100