warfactoryracine/docs/configuration/error-handling.md
StillHammer 6c7934d530 Integrate 227 additional technical specification points
Major integration of Points 251-570 from master list:
- Points 251-350: Configuration system (error handling, security, deployment)
- Points 351-390: Claude Code development practices added to CLAUDE.md
- Points 391-470: Integration patterns and UX already covered in architecture
- Points 471-570: Business logic and build system already documented
- Points 136-142: Interface contracts already integrated

Created complete docs/configuration/ folder with:
- transport-economic-system.md (economic parameters)
- module-configuration.md (smart dependencies)
- error-handling.md (crash recovery, Redis failover)
- security-measures.md (anti-cheat, server authority)
- deployment-strategies.md (V1→V2 migration, hot-reload)

Progress: 357/570 points integrated (63%), only 131 concrete points remaining

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 07:08:15 +08:00

119 lines
3.3 KiB
Markdown

# Error Handling & Reliability System
**Points 291-310 - Error Handling** - Anti-cheat validation, input responses, module failures, network issues
## Engine Crash/Restart Strategy
### Detection System
**Health monitoring automatique** :
```bash
# Health check HTTP
GET /health toutes les 30 secondes
# Redis heartbeat
PUBLISH engine:heartbeat {"engine": "factory", "timestamp": "..."}
# Timeout detection
Si pas de heartbeat depuis 60s = engine down
```
### Recovery Automatique
**Restart et state restoration** :
```cpp
// Engine redémarre → republish état current dans Redis
// Example: Factory Engine restart
PUBLISH factory:status {"active_productions": [...]}
// Autres engines reçoivent l'update et ajustent leur état local
```
### Graceful Degradation
**Fallback vers cache local** :
```cpp
// Dans chaque engine
if (!canReachEngine("economy")) {
// Utiliser derniers prix connus en cache
price = fallbackPriceCache.get(resource);
logWarning("Using cached price, Economy engine unreachable");
}
```
## Redis Failover Strategy
### Persistence Configuration
**Redis durability** :
```bash
# Configuration Redis
save 900 1 # Save snapshot if 1+ keys changed in 15min
appendonly yes # Log toutes les commandes
```
### Multiple Instances
**High availability setup** :
```bash
Primary Redis: 6379 (read/write)
Replica Redis: 6380 (read-only backup)
Si primary down → engines switch automatiquement vers replica
```
### Message Replay
**State recovery après Redis restart** avec replay des messages critiques.
## Anti-cheat & Validation
### Server Authoritative Design
- **Toute logique métier** côté serveur
- **Anti-cheat naturel** via validation centralisée
- **Zero game logic** côté client
### Anti-cheat Psychologique
**Stratégie : Cheat attempts → "bugs" simulés progressifs**
```cpp
class AntiCheatPsycho {
void onCheatDetected(CheatType type) {
switch(type) {
case SPEED_HACK:
simulateRandomLag(50ms, 500ms);
break;
case RESOURCE_HACK:
simulateVisualGlitches(tanks, 5%);
break;
case DAMAGE_HACK:
simulateDesync(movement, 2%);
break;
}
}
};
```
### Input Validation
- **V1 Thin Client** : Validation authoritative serveur
- **V2 Client Prediction** : Validation + réconciliation
- **Build verification** : Hot-reload seulement si build réussi
## Network Issues & Module Failures
### Module Isolation
- **Failures localisées** : Pas de cascade entre modules
- **Module autonomy** : Continue avec dernières données reçues
- **Async communication** : Redis Pub/Sub pour resilience
### Timeout Handling
- **Fallback patterns** : Cache local si engine unreachable
- **Graceful degradation** : Fonctionnalité réduite vs crash total
- **State preservation** : Maintien état durant failures temporaires
## Sources
**Documentation originale :**
- `docs/global/architecture-technique.md` - Section "Error Handling & Reliability"
- `docs/toCheck/architecture-modulaire.md` - Anti-cheat psychologique
- `docs/architecture-technique.md` - Validation patterns
**Points couverts :** 20 spécifications error handling détaillées