36 lines
2.4 KiB
Markdown
36 lines
2.4 KiB
Markdown
# NetworkCore
|
|
|
|
The foundational plugin for KweebecNet. Every other plugin on the network depends on this one.
|
|
|
|
## What it does
|
|
|
|
- **Cross-server messaging** over Redis pub/sub, so plugins running on different Hytale servers can talk to each other (party invites, queue handoffs, global chat, etc.)
|
|
- **Server presence**, so every server knows which other servers are online and what role each one plays
|
|
- **Metrics**, so we can graph and alert on what the network is doing in real time (player counts, RPC latency, message volume, JVM health)
|
|
- **RPC**, so a plugin can ask another server a question and get an answer back
|
|
|
|
If this plugin isn't running, **nothing else on the network works correctly**. Chat won't cross servers. Parties break. Queues can't allocate matches. Metrics go dark. Treat it like the load-bearing wall it is.
|
|
|
|
## Why this is critical
|
|
|
|
This isn't a feature plugin you can disable to debug something else. If you stop NetworkCore on one server, that server falls off the network from everyone else's point of view within ~15 seconds. If Redis goes down, the entire mesh stops communicating until it's back.
|
|
|
|
Things that look fine in isolation but break the network if you get them wrong:
|
|
|
|
- Different `NETWORK_AUTH_TOKEN` on one server vs the others (silent message rejection)
|
|
- Pointing one server at a different Redis instance than the rest (servers can't see each other)
|
|
- Disabling the plugin "just to test" on a production server (leaves a hole in the mesh)
|
|
- Changing `redis.key_prefix` on one server (lives in its own private network)
|
|
|
|
## Before you touch this
|
|
|
|
**Read the docs in [docs/](docs/) first.** The full reading order is in [docs/README.md](docs/README.md). At minimum, read:
|
|
|
|
- [01_Overview.md](docs/01_Overview.md) - what this owns and why it's split out
|
|
- [03_Configuration.md](docs/03_Configuration.md) - every config field and what changing it does
|
|
- [09_Operations_And_Security.md](docs/09_Operations_And_Security.md) - threat model, common failure modes, ops checks
|
|
|
|
**If you're making changes to NetworkCore itself**, or to how a dependent plugin uses it, talk to a higher-up before merging. This is one of those rare pieces of infrastructure where a "small fix" can take down the whole network in ways that are not obvious until production traffic hits it.
|
|
|
|
If you're new and unsure, the safe move is to ask first. Nobody will mind. Everyone will mind if you break the bus.
|