Acknowledgment System
The Acknowledgment System verifies that your character data was successfully received and applied by other players. It provides reliability and transparency in the synchronization process.
What It Does
The Acknowledgment System:
- Verifies that sent data was received by the target player
- Confirms that the data was successfully applied
- Tracks acknowledgment success rates and performance metrics
- Provides detailed error codes when acknowledgments fail
- Automatically retries failed acknowledgments
- Batches acknowledgment requests for efficiency
Why It Matters
Before the Acknowledgment System:
- You sent data but couldn't be sure if it was received
- Failed syncs were difficult to diagnose
- No visibility into sync reliability
With the Acknowledgment System:
- You know exactly when your data was successfully applied
- Failed syncs are clearly identified with specific error codes
- You can track your overall sync reliability
- Automatic retries improve success rates
How It Works
Hash-Based Verification
Each data packet includes a cryptographic hash:
- Sender: Calculates hash of data before sending
- Receiver: Verifies hash upon receiving data
- Confirmation: Receiver sends acknowledgment with hash verification
- Validation: Sender confirms the hash matches, ensuring data integrity
Session-Aware Tracking
Acknowledgments are tracked per session:
- Each connection has its own acknowledgment state
- Session IDs prevent cross-session confusion
- Clean tracking even with reconnections
- Accurate metrics per connection
Batch Processing
For efficiency:
- Multiple acknowledgment requests are batched together
- Reduces network overhead
- Improves performance
- Maintains accuracy
Timeout Handling
When acknowledgments fail:
- Automatic retry with exponential backoff
- Configurable timeout periods
- Detailed error codes for troubleshooting
- Metrics tracking to identify problematic connections
Error Codes
The system provides specific error codes when acknowledgments fail:
- Timeout: No response within expected time
- Hash Mismatch: Data was corrupted during transfer
- Application Failed: Data was received but couldn't be applied
- Permission Denied: Target player blocked the data (TODO)
Metrics and Monitoring
Track your sync health:
- Success rate: Percentage of successful acknowledgments
- Average latency: Time from send to acknowledgment
- Failure breakdown: Distribution of error types
- Per-pair metrics: Individual connection statistics
Configuration
Configure acknowledgment behavior in settings:
- Notification settings: Choose when to receive acknowledgment notifications
- Timeout duration: Adjust how long to wait before retrying
- Retry attempts: Set maximum number of retry attempts
- Admin check: Enable admin-only access to acknowledgment monitor
Debug UI
The Status Debug UI provides detailed acknowledgment information:
- Real-time acknowledgment status for all pairs
- Failed acknowledgment history with error codes
- Performance metrics and timing data
- Manual acknowledgment triggers for testing
Tips
- Check the acknowledgment monitor if you suspect sync issues
- High failure rates may indicate network problems
- Hash mismatches suggest data corruption - check your file cache
- Use the metrics to identify problematic connections