Skip to main content

System Overview

FLOPY-NET is designed as a modular, policy-driven platform for studying federated learning in realistic network environments. This document provides a comprehensive overview of the system architecture, component interactions, and design principles.

High-Level Architecture

Design Principles

1. Policy-Driven Architecture

The Policy Engine is the central nervous system of FLOPY-NET, ensuring that all components operate according to defined security, performance, and governance rules.

Key Features:

  • Centralized policy definition and enforcement (Flask REST API on port 5000)
  • Real-time compliance monitoring with event buffer system
  • Dynamic policy updates without system restart
  • SQLite and in-memory storage backends
  • Custom policy functions in config/policy_functions/

2. Modular Component Design

Each component is designed as an independent service with well-defined interfaces:

3. Observable and Controllable Systems

Every component exposes metrics, logs, and control interfaces:

  • Metrics: Performance, health, and business metrics
  • Events: System events and state changes
  • Controls: REST APIs for configuration and control
  • Health Checks: Liveness and readiness probes

4. Research-First Design

The platform is optimized for research workflows:

  • Reproducible Experiments: Deterministic seeding and configuration
  • Extensible Frameworks: Plugin architecture for custom algorithms
  • Data Export: Comprehensive data export for analysis
  • Scenario Management: Pre-defined and custom scenarios

Component Interactions

Startup Sequence

Experiment Lifecycle

Data Flow Architecture

Metrics Collection Flow

Policy Enforcement Flow

Security Architecture

Multi-Layer Security Model

FLOPY-NET implements security at multiple layers:

  1. Network Layer: SDN-based network isolation and monitoring
  2. Application Layer: Policy-based access control and validation
  3. Data Layer: Encryption at rest and in transit
  4. Component Layer: Service-to-service authentication

Scalability Architecture

Horizontal Scaling

Performance Characteristics

Throughput Metrics

ComponentMetricTargetMaximum
Dashboard APIRequests/sec1,00010,000
CollectorMetrics/sec10,000100,000
Policy EngineEvaluations/sec5,00050,000
FL FrameworkClients1001,000

Latency Targets

OperationP50P95P99
API Response50ms200ms500ms
Metric Collection10ms50ms100ms
Policy Evaluation5ms20ms50ms
FL Round Start1s5s10s

Deployment Architecture

Development Environment

Production Environment

Technology Stack

Core Technologies

LayerTechnologyPurpose
FrontendReact 18 + TypeScriptInteractive dashboard
BackendFastAPI + PythonREST API services
DatabasePostgreSQL + InfluxDBMetrics and metadata storage
Message QueueRedisEvent streaming
ContainerDocker + ComposeService orchestration
NetworkGNS3 + OpenFlowNetwork simulation

ML/FL Technologies

ComponentTechnologyPurpose
FL FrameworkCustom + PyTorchFederated learning implementation
Model TrainingPyTorchDeep learning models
Data HandlingPandas + NumPyData preprocessing
VisualizationPlotly + D3.jsInteractive charts

Configuration Management

Configuration Hierarchy

Configuration Files Structure

config/
├── system/
│ ├── collector_config.json
│ ├── policy_config.json
│ └── server_config.json
├── scenarios/
│ ├── basic_fl.json
│ ├── non_iid.json
│ └── byzantine.json
├── policies/
│ ├── security_policies.json
│ ├── performance_policies.json
│ └── compliance_policies.json
└── network/
├── topology_configs/
└── gns3_templates/

Monitoring and Observability

Metrics Collection

FLOPY-NET collects four types of metrics:

  1. Business Metrics: FL accuracy, convergence, client participation
  2. Performance Metrics: Latency, throughput, resource utilization
  3. Infrastructure Metrics: CPU, memory, disk, network usage
  4. Security Metrics: Policy violations, authentication failures

Logging Strategy

This architecture ensures that FLOPY-NET provides a robust, scalable, and research-friendly platform for studying federated learning in realistic network environments.