Stack Architecture
The syft-flwr stack is built on four main components that work together to enable privacy-preserving federated learning.
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ syft-flwr (FL Layer) │
│ • Flower client/server integration │
│ • Federated training coordination │
│ • Aggregation strategies │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ syft-rds (Remote Data Science) │
│ • Private dataset management │
│ • Code submission workflow │
│ • Result sharing │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ syft-extras (Communication Layer) │
│ • syft-core: Permissions & workspace management │
│ • syft-event: Event-driven RPC (syft:// URLs) │
│ • syft-rpc: Object serialization │
│ • syft-http-bridge: HTTP ↔ filesystem │
│ • syft-crypto: End-to-end encryption (Signal Protocols) │
└─────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────┐
│ SyftBox (Infrastructure Layer) │
│ • File synchronization protocol │
│ • Datasite management │
│ • Permission system │
│ • Network coordination │
└─────────────────────────────────────────────────────────────────┘
Component Responsibilities
SyftBox (Base Protocol)
- Provides the foundational file sync and permission system
- Written in Go for performance
- Manages datasites across the network
syft-extras (Building Blocks)
- Communication primitives for app-to-app interaction
- RPC, events, encryption, HTTP bridging
- Written in Python
syft-rds (Remote Data Science)
- Enables data scientists to work with remote private datasets
- Data owners control execution and sharing
- Built on syft-extras
syft-flwr (Federated Learning)
- Integrates Flower FL framework with SyftBox protocol
- Orchestrates distributed training
- Uses all lower layers for coordination
note
Detailed documentation for each component coming soon