Tags
Creators
Details
1.0.5
Compatibility
Changes
This update is a major internal rewrite focused on stability, scalability, routing reliability, and production readiness.
Large parts of the plugin architecture were redesigned to improve failover handling, backend monitoring, reconnect behavior, and long-term maintainability.
Added
Centralized Health Monitoring
- Added async centralized backend health monitoring
- Added cached backend health states
- Added backend latency tracking
- Added backend quarantine handling
- Added automatic backend recovery detection
- Added safer ping scheduling system
Sticky Sessions
- Added real sticky-session support
- Players now prefer previously connected healthy backends
- Added stale session expiration handling
- Added safe sticky-session fallback behavior
Weighted Balancing
- Added configurable weighted backend balancing
- Routing now properly respects configured server weights
- Added improved balancing logic combined with:
- backend health
- player limits
- latency checks
- sticky sessions
Routing Improvements
- Added improved fallback routing
- Added deterministic routing behavior
- Added retry cooldown handling
- Added safer reconnect flow
- Added backend quarantine protection
- Added reconnect spam protection
Metrics & Diagnostics
- Added improved routing diagnostics
- Added backend monitoring improvements
- Added cleaner debug output
- Added better lifecycle logging
Improved
Architecture
- Reworked internal plugin architecture
- Split large systems into dedicated services
- Improved service separation and encapsulation
- Improved maintainability across routing systems
- Improved lifecycle management
- Improved async safety
Performance
- Reduced unnecessary allocations
- Reduced repeated routing lookups
- Reduced async scheduler overhead
- Reduced ping amplification during outages
- Improved routing hot-path efficiency
- Improved cache usage
Concurrency
- Improved thread safety
- Improved session state handling
- Improved reconnect synchronization
- Improved retry handling under heavy load
- Improved async task cleanup
Reliability
- Improved backend outage handling
- Improved fallback reliability
- Improved retry stability
- Improved shutdown handling
- Improved startup validation
- Improved reconnect handling during backend instability
Security
- Improved plugin messaging validation
- Improved malformed packet protection
- Improved backend validation
- Improved routing safety protections
Codebase
- Cleaned and standardized code formatting
- Removed excessive AI-style comments
- Removed noisy block comments
- Simplified internal structure
- Cleaned unused logic and redundant code
- Improved readability across the project
Documentation
- Fully rewritten README
- Added architecture documentation
- Added routing documentation
- Added deployment recommendations
- Added troubleshooting guidance
- Added scaling recommendations
- Added configuration explanations
Changed
Java Version
- Updated project target from Java 8 to Java 17
Server Version
- Supports only 1.19.x or higher
Plugin Naming
- Standardized plugin naming to:
FlowGate-Lite
Artifact Naming
- Final build artifact is now:
FlowGate-Lite-1.0.5.jar
Fixed
- Fixed backend ping amplification
- Fixed unsafe plugin messaging behavior
- Fixed multiple routing edge cases
- Fixed reconnect instability issues
- Fixed various async lifecycle problems
- Fixed inconsistent plugin naming
- Fixed startup validation issues
- Fixed shutdown cleanup issues
- Fixed several routing race-condition risks
- Fixed stale retry/session handling
- Fixed inconsistent balancing behavior
Recommended
Before deploying to production:
- stress-test reconnect behavior
- test backend outage scenarios
- test proxy restart behavior
- verify failover routing under load
- monitor memory usage during extended runtime
Compatibility
- Java 17+
- Waterfall
- BungeeCord-compatible proxy environments
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:PYtfmDzP:858DUaKe"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:PYtfmDzP:858DUaKe"
}

