Files
michaelschiemer/docs/planning/N+1-Detection-ML-Next-Steps.md
Michael Schiemer fc3d7e6357 feat(Production): Complete production deployment infrastructure
- Add comprehensive health check system with multiple endpoints
- Add Prometheus metrics endpoint
- Add production logging configurations (5 strategies)
- Add complete deployment documentation suite:
  * QUICKSTART.md - 30-minute deployment guide
  * DEPLOYMENT_CHECKLIST.md - Printable verification checklist
  * DEPLOYMENT_WORKFLOW.md - Complete deployment lifecycle
  * PRODUCTION_DEPLOYMENT.md - Comprehensive technical reference
  * production-logging.md - Logging configuration guide
  * ANSIBLE_DEPLOYMENT.md - Infrastructure as Code automation
  * README.md - Navigation hub
  * DEPLOYMENT_SUMMARY.md - Executive summary
- Add deployment scripts and automation
- Add DEPLOYMENT_PLAN.md - Concrete plan for immediate deployment
- Update README with production-ready features

All production infrastructure is now complete and ready for deployment.
2025-10-25 19:18:37 +02:00

34 KiB

N+1 Detection ML - Next Steps & TODOs

Date: 2025-10-22 Status: Integration Complete - Ready for Testing Phase: Testing & Validation

Overview

N+1 Detection ML implementation and integration is complete. This document outlines the next steps for testing, validation, and production deployment.


Phase 1: Testing & Validation (Immediate Priority)

1.1 Test Execution on Stable PHP Environment

Status: PENDING - Blocked by PHP 8.5 RC1 incompatibility

Objective: Execute all 51 N+1 Detection ML tests on stable PHP 8.4.x environment

Steps:

  1. Set up PHP 8.4.x environment (stable release)
  2. Install dependencies: composer install
  3. Run all N+1 Detection ML tests:
    ./vendor/bin/pest tests/Framework/Database/NPlusOneDetection/
    
  4. Verify all 51 tests pass:
    • QueryFeatureExtractorTest (22 tests)
    • NPlusOneDetectionEngineTest (14 tests)
    • QueryExecutionContextTest (15 tests)
  5. Address any test failures
  6. Update test documentation with results

Expected Outcome: 51/51 tests passing

Blockers: Currently blocked by PHP 8.5 RC1 + Pest/PHPUnit compatibility issue

Priority: HIGH


1.2 Integration Testing with Real Query Data

Status: PENDING

Objective: Test N+1 Detection ML integration with real production-like query logs

Steps:

  1. Run integration example:

    php examples/nplusone-ml-integration-example.php
    
  2. Verify output shows:

    • Traditional pattern detection results
    • ML analysis results (when enabled)
    • Combined analysis with confidence scores
    • No errors or exceptions
  3. Test with real application code:

    $detectionService = $container->get(NPlusOneDetectionService::class);
    
    $result = $detectionService->profile(function() {
        // Real application code that may have N+1
        $users = $userRepository->findAll();
        foreach ($users as $user) {
            $user->getPosts(); // Potential N+1
        }
    });
    
    // Verify both traditional and ML analysis present
    var_dump($result['detections']);      // Traditional
    var_dump($result['ml_analysis']);     // ML-based
    
  4. Compare traditional detection vs. ML detection:

    • Identify cases where ML detected issues traditional detection missed
    • Identify false positives from ML
    • Adjust confidence threshold if needed

Expected Outcome:

  • Integration works seamlessly
  • ML provides additional insights beyond traditional detection
  • Combined analysis more accurate than either method alone

Priority: HIGH


1.3 Performance Benchmarking

Status: PENDING

Objective: Measure actual performance overhead of ML integration

Steps:

  1. Create benchmark script:

    // Benchmark traditional detection only
    $start = microtime(true);
    for ($i = 0; $i < 1000; $i++) {
        $result = $traditionalDetectionService->analyze();
    }
    $traditionalTime = microtime(true) - $start;
    
    // Benchmark with ML enabled
    $start = microtime(true);
    for ($i = 0; $i < 1000; $i++) {
        $result = $mlEnabledDetectionService->analyze();
    }
    $mlTime = microtime(true) - $start;
    
    echo "Traditional: " . ($traditionalTime / 1000) . "ms per analysis\n";
    echo "ML-enabled: " . ($mlTime / 1000) . "ms per analysis\n";
    echo "Overhead: " . (($mlTime - $traditionalTime) / 1000) . "ms\n";
    
  2. Measure memory usage:

    • Traditional detection memory footprint
    • ML-enabled detection memory footprint
    • Memory overhead per analysis
  3. Verify performance targets:

    • Traditional detection: <10ms overhead
    • ML analysis: <15ms additional overhead
    • Total overhead: <25ms
    • Memory: <10MB per analysis

Expected Outcome: Performance within acceptable limits (<25ms total overhead)

Priority: MEDIUM


Phase 2: Production Preparation (Next Priority)

2.1 Configuration Tuning

Status: PENDING

Objective: Optimize ML configuration based on test results

Configuration Parameters to Tune:

  1. Confidence Threshold (NPLUSONE_ML_CONFIDENCE_THRESHOLD):

    • Default: 60.0%
    • Tune based on false positive rate
    • Lower = more detections, higher false positives
    • Higher = fewer detections, higher confidence
    • Recommended range: 50-80%
  2. Analysis Timeout (NPLUSONE_ML_TIMEOUT_MS):

    • Default: 5000ms
    • Tune based on query volume
    • For high-traffic: reduce to 2000-3000ms
    • For low-traffic: can increase to 10000ms
  3. Enabled State (NPLUSONE_ML_ENABLED):

    • Development: true (for testing)
    • Staging: true (for validation)
    • Production: true (after validation)

Steps:

  1. Test different confidence thresholds (50%, 60%, 70%, 80%)
  2. Measure false positive rate for each threshold
  3. Select optimal threshold based on accuracy vs. noise trade-off
  4. Document recommended configuration in deployment guide

Expected Outcome: Optimized configuration for production use

Priority: MEDIUM


2.2 Monitoring & Alerting Setup

Status: PENDING

Objective: Set up monitoring for ML detection in production

Monitoring Metrics:

  1. ML Analysis Success Rate:

    $successRate = (successful_analyses / total_analyses) * 100;
    // Target: >99%
    
  2. Performance Metrics:

    • Average analysis time
    • P50, P95, P99 latency
    • Memory usage per analysis
  3. Detection Metrics:

    • Total anomalies detected
    • High-confidence detections (>80%)
    • Detection rate comparison (traditional vs. ML)
  4. Error Metrics:

    • ML engine failures
    • Timeout occurrences
    • Feature extraction errors

Alerting Rules:

  • Alert if ML success rate <95%
  • Alert if average analysis time >50ms
  • Alert if critical N+1 patterns detected (confidence >90%)

Implementation:

// Log metrics in analyze() method
$this->metrics->gauge('nplusone_ml.success_rate', $successRate);
$this->metrics->histogram('nplusone_ml.analysis_time_ms', $analysisTime);
$this->metrics->counter('nplusone_ml.anomalies_detected', $anomalyCount);

Expected Outcome: Comprehensive monitoring and alerting for ML system

Priority: MEDIUM


2.3 Documentation Updates

Status: PENDING

Objective: Update framework documentation with ML integration

Documentation to Create/Update:

  1. User Guide: How to use N+1 Detection with ML
  2. Configuration Guide: Environment variables and tuning
  3. Troubleshooting Guide: Common issues and solutions
  4. API Documentation: NPlusOneDetectionService methods
  5. Performance Guide: Expected overhead and optimization tips

Locations:

  • docs/database/nplusone-detection-ml.md
  • docs/performance/query-optimization.md
  • CLAUDE.md (add ML integration reference)

Priority: LOW


Phase 3: Advanced Features (Future Enhancements)

3.1 Persistent Learning System

Status: 📋 PLANNED

Objective: Enable ML engine to learn from historical query patterns

Features:

  1. Pattern Storage:

    • Store detected N+1 patterns in database
    • Track pattern frequency and severity over time
    • Build historical baseline for comparison
  2. Adaptive Thresholds:

    • Automatically adjust confidence thresholds based on accuracy
    • Learn project-specific patterns
    • Reduce false positives over time
  3. Pattern Recognition:

    • Identify recurring N+1 patterns
    • Suggest permanent fixes (eager loading, caching)
    • Track improvement after optimization

Implementation Approach:

CREATE TABLE nplusone_ml_patterns (
    id SERIAL PRIMARY KEY,
    pattern_hash VARCHAR(64) NOT NULL,
    query_template TEXT NOT NULL,
    detection_count INT DEFAULT 1,
    first_detected TIMESTAMP NOT NULL,
    last_detected TIMESTAMP NOT NULL,
    confidence_score FLOAT NOT NULL,
    severity VARCHAR(20) NOT NULL,
    fixed BOOLEAN DEFAULT FALSE
);

Estimated Effort: 3-5 days

Priority: LOW


3.2 Real-time Alerting Integration

Status: 📋 PLANNED

Objective: Integrate with monitoring systems for real-time alerts

Integrations:

  1. Slack/Discord:

    • Send alerts when critical N+1 detected
    • Include query details, confidence score, suggested fix
  2. Email Notifications:

    • Daily digest of N+1 patterns detected
    • Weekly summary with trends
  3. Dashboard:

    • Real-time visualization of query performance
    • Historical trends and patterns
    • Optimization suggestions

Implementation Approach:

if ($mlAnalysis['overall_confidence'] > 90.0 && $anomaly->severity === Severity::CRITICAL) {
    $this->alertManager->sendCriticalAlert(
        channel: 'slack',
        message: "Critical N+1 pattern detected",
        details: [
            'confidence' => $mlAnalysis['overall_confidence'],
            'query_count' => $context->queryCount,
            'time_wasted' => $statistics['time_wasted_percentage']
        ]
    );
}

Estimated Effort: 2-3 days

Priority: LOW


3.3 Automated Optimization Suggestions

Status: 📋 PLANNED

Objective: Generate specific code suggestions for fixing N+1 issues

Features:

  1. Eager Loading Suggestions:

    • Analyze detected patterns
    • Identify exact relations to eager load
    • Generate code snippets
  2. Caching Recommendations:

    • Identify queries suitable for caching
    • Suggest cache keys and TTL
    • Generate cache implementation code
  3. Repository Method Generation:

    • Create optimized repository methods
    • Include eager loading by default
    • Follow framework patterns

Example Output:

// Detected N+1 in User->posts relationship
// Suggested fix:

// In UserRepository.php
public function findAllWithPosts(): array
{
    return $this->entityManager
        ->createQueryBuilder()
        ->select('u', 'p')
        ->from(User::class, 'u')
        ->leftJoin('u.posts', 'p')
        ->getQuery()
        ->getResult();
}

// Usage:
$users = $userRepository->findAllWithPosts();
// No N+1 - posts are eager loaded

Estimated Effort: 5-7 days

Priority: LOW


3.4 Advanced ML Models

Status: 📋 PLANNED

Objective: Enhance detection accuracy with advanced ML techniques

Potential Enhancements:

  1. Neural Network-based Detection:

    • Train LSTM/GRU models on query sequences
    • Detect complex temporal patterns
    • Higher accuracy for subtle N+1 patterns
  2. Sequence Modeling:

    • Analyze query execution order
    • Identify sequential dependencies
    • Predict upcoming N+1 patterns
  3. Transfer Learning:

    • Train on multiple projects
    • Share learned patterns across codebases
    • Faster adaptation to new projects

Estimated Effort: 10-15 days (requires ML expertise)

Priority: VERY LOW


Testing Checklist

Pre-Deployment Checklist

  • All 51 tests pass on stable PHP environment
  • Integration example executes without errors
  • Performance benchmarks meet targets (<25ms overhead)
  • Configuration tuned for production
  • Monitoring and alerting configured
  • Documentation updated
  • Staging environment testing complete
  • Production deployment plan reviewed

Production Deployment Steps

  1. Enable ML in Staging:

    # .env (staging)
    NPLUSONE_ML_ENABLED=true
    NPLUSONE_ML_TIMEOUT_MS=5000
    NPLUSONE_ML_CONFIDENCE_THRESHOLD=60.0
    
  2. Monitor for 1 Week:

    • Verify no performance degradation
    • Check ML success rate >99%
    • Validate detection accuracy
  3. Enable in Production:

    • Same configuration as staging
    • Enable gradually (feature flag)
    • Monitor closely for 24-48 hours
  4. Iterate Based on Results:

    • Adjust confidence threshold if needed
    • Fine-tune timeout based on traffic
    • Document any issues and resolutions

Known Issues & Limitations

Current Known Issues

  1. PHP 8.5 RC1 Compatibility:
    • Issue: Cannot execute Pest tests due to PHP 8.5 RC1 + Pest/PHPUnit incompatibility
    • Impact: Tests written but not executed
    • Solution: Use stable PHP 8.4.x environment
    • Status: Workaround available

Current Limitations

  1. No Persistent Learning:

    • ML engine doesn't learn from past detections
    • Each analysis is independent
    • Future Enhancement: Persistent learning system (Phase 3.1)
  2. Limited Query Complexity Analysis:

    • Simple keyword-based complexity estimation
    • Doesn't parse SQL AST
    • Future Enhancement: Use SQL parser for accurate complexity
  3. Manual Configuration:

    • Confidence threshold must be manually tuned
    • No automatic optimization
    • Future Enhancement: Adaptive thresholds (Phase 3.1)

Success Criteria

Phase 1 Success Criteria (Testing)

  • All 51 tests pass
  • Integration example executes successfully
  • Performance overhead <25ms
  • No errors in production-like testing

Phase 2 Success Criteria (Production)

  • ML success rate >99%
  • False positive rate <5%
  • Detection improvement over traditional detection
  • No performance degradation in production

Phase 3 Success Criteria (Enhancements)

  • Persistent learning reduces false positives by 20%
  • Automated suggestions adopted by developers
  • Real-time alerting prevents critical N+1 issues

Contact & Support

Implementation Lead: Claude AI Assistant Documentation: /docs/planning/N+1-Detection-ML-*.md Examples: /examples/nplusone-ml-*.php Tests: /tests/Framework/Database/NPlusOneDetection/

For Issues:

  1. Check troubleshooting guide in integration summary
  2. Review logs for ML engine errors
  3. Verify configuration in .env
  4. Consult example files for usage patterns


Phase 4: Additional ML Implementations (Future Expansion)

4.1 Performance Anomaly Detection

Status: 📋 PLANNED

Objective: Use ML to detect performance anomalies across the entire application stack

Implementation Details:

  1. PerformanceFeatureExtractor:
final readonly class PerformanceFeatureExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = PerformanceMetrics object
        return [
            'response_time' => $data->responseTime->toMilliseconds(),
            'memory_usage' => $data->memoryUsage->toMegabytes(),
            'cpu_time' => $data->cpuTime->toMilliseconds(),
            'db_query_count' => $data->databaseQueries->count(),
            'cache_hit_rate' => $data->cacheMetrics->hitRate(),
            'time_of_day' => $this->normalizeTimeOfDay($data->timestamp),
            'day_of_week' => $this->normalizeDayOfWeek($data->timestamp),
            'endpoint_hash' => $this->hashEndpoint($data->endpoint)
        ];
    }
}
  1. Integration Points:

    • Hook into PerformanceCollector
    • Monitor endpoint response times
    • Track memory and CPU usage patterns
    • Detect unusual resource consumption
  2. Anomaly Types:

    • Sudden latency spikes
    • Memory leak patterns
    • CPU usage anomalies
    • Database connection saturation
  3. Action Items:

    • Alert operations team on critical anomalies
    • Automatically scale resources if needed
    • Generate performance reports
    • Trigger circuit breakers for degraded services

Estimated Effort: 2-3 days

Priority: MEDIUM

Expected Outcome:

  • Early detection of performance degradation
  • Proactive resource scaling
  • Reduced incident response time
  • Historical performance baseline

4.2 Security Threat Intelligence - Advanced WAF

Status: 📋 PLANNED

Objective: Enhance WAF with ML-based behavior analysis for sophisticated attack detection

Implementation Details:

  1. BehaviorPatternExtractor:
final readonly class BehaviorPatternExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = RequestSequence (array of HttpRequest)
        return [
            'request_frequency' => $this->calculateFrequency($data),
            'endpoint_diversity' => $this->calculateEndpointDiversity($data),
            'parameter_entropy' => $this->calculateParameterEntropy($data),
            'user_agent_consistency' => $this->checkUserAgentPatterns($data),
            'geographic_anomaly' => $this->detectGeographicJumps($data),
            'time_pattern_regularity' => $this->analyzeTimingPatterns($data),
            'payload_similarity' => $this->calculatePayloadSimilarity($data),
            'http_method_distribution' => $this->analyzeMethodDistribution($data)
        ];
    }
}
  1. Advanced Threat Detection:

    • Low-and-Slow Attacks: Detect distributed attacks over extended periods
    • Polymorphic Payloads: Identify attack patterns despite payload variations
    • Behavioral Anomalies: Flag unusual request sequences
    • Bot Detection: Distinguish sophisticated bots from legitimate users
    • Zero-Day Detection: Identify novel attack patterns
  2. Integration with Existing WAF:

final readonly class MLEnhancedWafLayer implements SecurityLayer
{
    public function analyze(HttpRequest $request): SecurityLayerResult
    {
        // Traditional pattern-based detection
        $traditionalResult = $this->traditionalWaf->analyze($request);

        // ML-based behavior analysis
        $behaviorScore = $this->mlEngine->analyzeBehavior(
            $this->requestHistory->getRecentRequests($request->getClientIp())
        );

        // Combined decision
        $threatLevel = $this->combineThreatLevels(
            $traditionalResult->threatLevel,
            $behaviorScore
        );

        return new SecurityLayerResult(
            passed: $threatLevel < ThreatLevel::HIGH,
            threatLevel: $threatLevel,
            detections: [...$traditionalResult->detections, ...$behaviorScore->anomalies]
        );
    }
}
  1. Real-time Adaptation:
    • Learn from attack patterns
    • Automatically update detection rules
    • Adaptive rate limiting based on behavior
    • IP reputation scoring

Estimated Effort: 3-4 days

Priority: HIGH

Expected Outcome:

  • Detection of sophisticated attacks
  • Reduced false positives
  • Adaptive security posture
  • Better bot protection

4.3 Queue Job Anomaly Detection

Status: 📋 PLANNED

Objective: ML-based anomaly detection for queue job failures and performance issues

Implementation Details:

  1. QueueJobFeatureExtractor:
final readonly class QueueJobFeatureExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = JobExecutionMetrics
        return [
            'execution_time' => $data->executionTime->toMilliseconds(),
            'memory_peak' => $data->memoryPeak->toMegabytes(),
            'retry_count' => $data->retryCount,
            'queue_wait_time' => $data->queueWaitTime->toMilliseconds(),
            'job_type_hash' => $this->hashJobType($data->jobType),
            'payload_size' => $data->payloadSize->toKilobytes(),
            'time_of_day' => $this->normalizeTimeOfDay($data->timestamp),
            'failure_rate' => $this->calculateRecentFailureRate($data->jobType)
        ];
    }
}
  1. Anomaly Detection Scenarios:

    • Jobs taking unusually long to execute
    • Unexpected memory usage patterns
    • Increased retry rates
    • Queue backlog buildup
    • Job starvation (jobs never executed)
    • Worker health degradation
  2. Integration with Queue System:

final readonly class MLEnhancedQueueMonitor
{
    public function monitorJob(JobPayload $payload, JobResult $result): void
    {
        $metrics = $this->extractMetrics($payload, $result);

        $anomalyResult = $this->mlEngine->analyze($metrics);

        if ($anomalyResult->isAnomaly() && $anomalyResult->confidence > 0.8) {
            // Take action based on anomaly type
            match ($anomalyResult->anomalyType) {
                'execution_time_spike' => $this->scaleWorkers(),
                'memory_leak' => $this->restartWorker($result->workerId),
                'high_failure_rate' => $this->pauseJobType($payload->jobType),
                default => $this->alertOps($anomalyResult)
            };
        }
    }
}
  1. Automated Responses:
    • Auto-scale workers on backlog detection
    • Pause problematic job types
    • Restart unhealthy workers
    • Adjust job priorities dynamically

Estimated Effort: 2-3 days

Priority: MEDIUM

Expected Outcome:

  • Proactive queue health management
  • Reduced job failures
  • Optimized worker allocation
  • Early detection of systemic issues

4.4 Cache Efficiency Analysis

Status: 📋 PLANNED

Objective: ML-based cache performance optimization and efficiency analysis

Implementation Details:

  1. CacheEfficiencyExtractor:
final readonly class CacheEfficiencyExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = CacheOperationMetrics
        return [
            'hit_rate' => $data->hitRate(),
            'miss_rate' => $data->missRate(),
            'eviction_rate' => $data->evictionRate(),
            'ttl_effectiveness' => $this->calculateTtlEffectiveness($data),
            'key_access_pattern' => $this->analyzeAccessPattern($data->key),
            'value_size' => $data->valueSize->toKilobytes(),
            'time_since_last_access' => $data->timeSinceLastAccess->toMinutes(),
            'access_frequency' => $data->accessCount / $data->lifetime->toHours()
        ];
    }
}
  1. Optimization Opportunities:

    • TTL Optimization: Suggest optimal TTL based on access patterns
    • Cache Warming: Identify keys that should be pre-cached
    • Eviction Strategy: Recommend best eviction policy per cache
    • Cache Size: Detect under/over-provisioned caches
    • Hot Key Detection: Identify keys causing cache hotspots
  2. ML-Driven Recommendations:

final readonly class CacheOptimizationEngine
{
    public function analyzeCache(string $cacheName): CacheOptimizationReport
    {
        $metrics = $this->gatherCacheMetrics($cacheName);
        $analysis = $this->mlEngine->analyze($metrics);

        return new CacheOptimizationReport(
            currentEfficiency: $analysis->efficiency,
            recommendations: [
                'ttl_adjustments' => $this->suggestTtlChanges($analysis),
                'size_optimization' => $this->suggestSizeChanges($analysis),
                'warming_strategy' => $this->suggestWarmingStrategy($analysis),
                'eviction_policy' => $this->suggestEvictionPolicy($analysis)
            ],
            projectedImprovement: $analysis->projectedGain
        );
    }
}
  1. SmartCache Integration:
    • Integrate with existing SmartCache system
    • Enhance HeatMapCacheStrategy with ML predictions
    • Improve PredictiveCacheStrategy with better forecasting
    • Adaptive TTL based on ML recommendations

Estimated Effort: 3-4 days

Priority: MEDIUM

Expected Outcome:

  • Improved cache hit rates
  • Reduced memory usage
  • Optimized TTL values
  • Better resource utilization

4.5 API Rate Limit Intelligence

Status: 📋 PLANNED

Objective: ML-based adaptive rate limiting with user behavior analysis

Implementation Details:

  1. RateLimitFeatureExtractor:
final readonly class RateLimitFeatureExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = UserApiActivity
        return [
            'request_frequency' => $data->requestsPerMinute(),
            'burst_pattern' => $this->detectBurstPatterns($data),
            'endpoint_diversity' => $this->calculateEndpointDiversity($data),
            'time_pattern_regularity' => $this->analyzeTimingRegularity($data),
            'error_rate' => $data->errorRate(),
            'payload_size_variance' => $this->calculatePayloadVariance($data),
            'geographic_consistency' => $this->checkGeographicPatterns($data),
            'user_reputation_score' => $this->getUserReputation($data->userId)
        ];
    }
}
  1. Intelligent Rate Limiting:

    • User Classification: Legitimate users vs. bots vs. abusers
    • Dynamic Limits: Adjust limits based on behavior patterns
    • Predictive Throttling: Anticipate abuse before it happens
    • Reputation-Based Limits: Higher limits for trusted users
    • Adaptive Burst Allowances: Allow legitimate bursts, block attacks
  2. Integration with Existing System:

final readonly class MLEnhancedRateLimiter implements RateLimiterInterface
{
    public function allow(RateLimitKey $key, RateLimit $limit): bool
    {
        // Traditional token bucket
        $tokenBucketResult = $this->tokenBucket->allow($key, $limit);

        // ML-based behavior analysis
        $behaviorAnalysis = $this->mlEngine->analyzeUserBehavior(
            $this->activityHistory->getHistory($key)
        );

        // Adaptive decision
        if ($behaviorAnalysis->isTrustedUser()) {
            // Allow higher limits for trusted users
            return $this->tokenBucket->allow($key, $limit->withMultiplier(2.0));
        }

        if ($behaviorAnalysis->isSuspicious()) {
            // Stricter limits for suspicious behavior
            return $this->tokenBucket->allow($key, $limit->withMultiplier(0.5));
        }

        return $tokenBucketResult;
    }
}
  1. Real-time Adaptation:
    • Learn from attack patterns
    • Automatic whitelist/blacklist updates
    • Contextual rate limits per endpoint
    • Fair usage enforcement

Estimated Effort: 3-5 days

Priority: MEDIUM

Expected Outcome:

  • Better legitimate user experience
  • Improved bot detection
  • Reduced abuse without false positives
  • Adaptive security posture

4.6 Database Query Optimizer

Status: 📋 PLANNED

Objective: ML-powered query optimization recommendations beyond N+1 detection

Implementation Details:

  1. QueryPerformanceExtractor:
final readonly class QueryPerformanceExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = QueryExecutionPlan
        return [
            'execution_time' => $data->executionTime->toMilliseconds(),
            'rows_examined' => $data->rowsExamined,
            'rows_returned' => $data->rowsReturned,
            'index_usage' => $this->analyzeIndexUsage($data),
            'join_complexity' => $this->calculateJoinComplexity($data),
            'subquery_count' => $data->subqueryCount,
            'full_table_scan' => $data->hasFullTableScan() ? 1.0 : 0.0,
            'query_complexity_score' => $this->calculateComplexity($data)
        ];
    }
}
  1. Optimization Recommendations:

    • Index Suggestions: Recommend missing indexes
    • Query Rewriting: Suggest more efficient query structures
    • Partition Recommendations: Identify tables needing partitioning
    • Denormalization Opportunities: Suggest strategic denormalization
    • Caching Strategies: Identify queries suitable for caching
  2. ML-Based Analysis:

final readonly class QueryOptimizationEngine
{
    public function analyzeQuery(string $sql, QueryExecutionPlan $plan): QueryOptimizationReport
    {
        $features = $this->extractor->extract($plan);
        $analysis = $this->mlEngine->analyze($features);

        return new QueryOptimizationReport(
            currentPerformance: $plan->executionTime,
            bottlenecks: $analysis->identifiedBottlenecks,
            recommendations: [
                'indexes' => $this->suggestIndexes($sql, $analysis),
                'rewrites' => $this->suggestRewrites($sql, $analysis),
                'caching' => $this->suggestCaching($sql, $analysis),
                'schema_changes' => $this->suggestSchemaChanges($analysis)
            ],
            projectedImprovement: $analysis->projectedSpeedup
        );
    }
}
  1. Integration Points:
    • Hook into EntityManager query execution
    • Analyze EXPLAIN plans automatically
    • Track query performance over time
    • Generate optimization reports

Estimated Effort: 4-5 days

Priority: LOW

Expected Outcome:

  • Automated query optimization suggestions
  • Proactive performance improvements
  • Reduced manual query tuning effort
  • Better database resource utilization

4.7 User Behavior Analytics for LiveComponents

Status: 📋 PLANNED

Objective: ML-based analysis of LiveComponent usage patterns for UX optimization

Implementation Details:

  1. LiveComponentUsageExtractor:
final readonly class LiveComponentUsageExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = ComponentInteractionLog
        return [
            'interaction_frequency' => $data->interactionsPerMinute(),
            'component_lifetime' => $data->lifetime->toMinutes(),
            'state_update_rate' => $data->stateUpdatesPerMinute(),
            'error_rate' => $data->errorRate(),
            'render_time' => $data->averageRenderTime->toMilliseconds(),
            'payload_size' => $data->averagePayloadSize->toKilobytes(),
            'user_engagement_score' => $this->calculateEngagement($data),
            'abandonment_indicator' => $this->detectAbandonment($data)
        ];
    }
}
  1. UX Insights:

    • Engagement Patterns: Identify highly-engaged vs. abandoned components
    • Performance Issues: Detect slow components affecting UX
    • State Management: Identify over-complex state management
    • User Frustration: Detect error-prone components
    • Conversion Funnels: Track user journeys through components
  2. ML-Driven UX Optimization:

final readonly class LiveComponentOptimizationEngine
{
    public function analyzeComponent(string $componentName): ComponentOptimizationReport
    {
        $usage = $this->gatherUsageMetrics($componentName);
        $analysis = $this->mlEngine->analyze($usage);

        return new ComponentOptimizationReport(
            engagement: $analysis->engagementScore,
            issues: $analysis->identifiedIssues,
            recommendations: [
                'state_optimization' => $this->suggestStateOptimizations($analysis),
                'interaction_improvements' => $this->suggestInteractionChanges($analysis),
                'performance_tuning' => $this->suggestPerformanceImprovements($analysis),
                'ux_enhancements' => $this->suggestUxEnhancements($analysis)
            ],
            projectedEngagementIncrease: $analysis->projectedImprovement
        );
    }
}
  1. Automated A/B Testing:
    • Detect which component variants perform better
    • Suggest winning variations
    • Track conversion rates
    • Identify UX friction points

Estimated Effort: 3-4 days

Priority: LOW

Expected Outcome:

  • Improved user engagement
  • Better UX through data-driven decisions
  • Reduced component abandonment
  • Higher conversion rates

4.8 Email/Notification Intelligence

Status: 📋 PLANNED

Objective: ML-based optimization of email delivery timing and content

Implementation Details:

  1. NotificationEngagementExtractor:
final readonly class NotificationEngagementExtractor implements FeatureExtractorInterface
{
    public function extract(mixed $data): array
    {
        // $data = NotificationMetrics
        return [
            'open_rate' => $data->openRate(),
            'click_through_rate' => $data->clickThroughRate(),
            'time_to_open' => $data->averageTimeToOpen->toHours(),
            'delivery_time_of_day' => $this->normalizeTimeOfDay($data->sentAt),
            'day_of_week' => $this->normalizeDayOfWeek($data->sentAt),
            'subject_length' => $this->normalizeLength($data->subject),
            'content_length' => $this->normalizeLength($data->body),
            'user_engagement_history' => $this->getUserEngagementScore($data->userId)
        ];
    }
}
  1. Optimization Strategies:

    • Send Time Optimization: Predict best time to send per user
    • Subject Line Optimization: Suggest high-performing subject lines
    • Content Personalization: Recommend personalized content
    • Frequency Optimization: Prevent notification fatigue
    • Channel Selection: Choose best channel (email vs. push vs. SMS)
  2. ML-Powered Delivery:

final readonly class IntelligentNotificationDispatcher
{
    public function schedule(Notification $notification, UserId $userId): ScheduledNotification
    {
        $userProfile = $this->getUserEngagementProfile($userId);
        $prediction = $this->mlEngine->predictOptimalDelivery($notification, $userProfile);

        return new ScheduledNotification(
            notification: $notification,
            scheduledAt: $prediction->optimalSendTime,
            channel: $prediction->preferredChannel,
            personalization: $prediction->contentOptimizations
        );
    }
}
  1. Continuous Learning:
    • Track engagement metrics
    • Learn user preferences
    • Adapt to behavior changes
    • A/B test strategies

Estimated Effort: 3-4 days

Priority: LOW

Expected Outcome:

  • Higher email open rates
  • Better click-through rates
  • Reduced unsubscribes
  • Improved user satisfaction

Phase 4 Summary

Total Additional ML Implementations: 8 Total Estimated Effort: 23-32 days Priority Distribution:

  • HIGH: 1 (Security Threat Intelligence)
  • MEDIUM: 4 (Performance, Queue, Cache, Rate Limiting)
  • LOW: 3 (Query Optimizer, LiveComponents, Notifications)

Implementation Strategy:

  1. Start with Phase 1-3 (N+1 Detection ML testing and validation)
  2. Implement Phase 4 projects based on priority and business needs
  3. Each Phase 4 project can be implemented independently
  4. Leverage existing ML framework for faster development
  5. Focus on high-value, medium-effort projects first

Framework Benefits:

  • Reuse ML infrastructure (FeatureExtractorInterface, AnomalyDetectorInterface)
  • Consistent patterns across all implementations
  • Shared testing and validation strategies
  • Common monitoring and alerting

Last Updated: 2025-10-22 Next Review: After Phase 1 testing complete