← Back to Documentation

🏗️ Architecture

System Architecture Overview

WaddlePerf follows a distributed client-server architecture optimized for scalable network performance testing.

🏢 Core Components

🖥️ WaddlePerf Server

  • py4web Framework: Modern Python web application
  • Docker Containerized: Easy deployment and scaling
  • Multi-protocol Support: HTTP, UDP, TCP, WebSocket
  • Database Integration: Performance data storage and analytics

📱 Go Desktop Client

  • Cross-platform: Windows, macOS, Linux
  • System Tray Integration: Background monitoring
  • Resource Optimized: Minimal CPU and memory usage
  • Connection Pooling: Efficient network utilization

🐍 Python Client Tools

  • Async/Threading: High-performance concurrent testing
  • Modular Design: Independent testing tools
  • JSON Output: Machine-readable results
  • CLI Interface: Scriptable and automatable

🔧 Testing Tools

  • speedtest.py: Bandwidth measurement (upload/download)
  • httptrace_async.py: HTTP performance analysis
  • udpping_async.py: UDP connectivity testing
  • resolverTime_async.py: DNS resolution timing

📊 Data Flow

  1. Test Execution: Client initiates performance tests
  2. Data Collection: Metrics gathered during test execution
  3. Result Transmission: JSON results sent to server
  4. Storage & Analytics: Server processes and stores data
  5. Visualization: Web interface displays results and trends

🚀 Performance Optimizations

  • Async I/O: Non-blocking network operations
  • Connection Reuse: HTTP keep-alive and pooling
  • Concurrent Testing: Parallel test execution
  • Resource Management: Automatic cleanup and garbage collection

🔒 Security Features

  • TLS Encryption: Secure data transmission
  • Token Authentication: API access control
  • Input Validation: Protection against injection attacks
  • Rate Limiting: DDoS prevention

📈 Scalability

  • Horizontal Scaling: Multiple server instances
  • Load Balancing: Distribute client connections
  • Database Sharding: Handle large datasets
  • CDN Integration: Global performance testing

🏗️ Design Principle: WaddlePerf prioritizes accuracy, efficiency, and ease of deployment while maintaining comprehensive testing capabilities.