Skip to main content

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

See Also