// the find
ionorg/ion
Real-Distributed RTC System by pure Go and Flutter
ION is a distributed WebRTC SFU system built on the Pion stack, split into discrete services (SFU, signal, ISLB, room, auth) that communicate over NATS and gRPC. It targets teams building scalable real-time video/audio applications who need something beyond a single-server SFU. The Flutter client makes it nominally full-stack, but the project has been effectively dead since late 2023.
1. Clean service decomposition — ISLB (Island Load Balancer) as a separate discovery/routing node means you can horizontally scale SFU nodes without a central bottleneck. 2. Built on Pion, which is the most production-tested Go WebRTC stack; you inherit its codec support, RTCP handling, and DTLS implementation rather than rolling your own. 3. gRPC + protobuf for inter-service communication means the protocol is typed and versioned — beats JSON-over-HTTP for a latency-sensitive media plane. 4. Docker Compose and per-service Dockerfiles are present and look functional, so local dev doesn't require manual wiring of five processes.
1. Abandoned — last real commit activity was 2022-2023, issues are piling up unanswered, and the pion org has clearly moved on. Don't adopt this expecting upstream fixes. 2. Redis is a hard dependency for ISLB state, which adds operational overhead and a single point of failure the architecture claims to avoid. 3. No E2E encryption (E2EE) at the application layer — you're trusting the SFU with plaintext media, which is fine for internal tools but a non-starter for anything consumer-facing in 2024. 4. Documentation is thin past the architecture diagram; the 'Online Docs' site exists but getting from docker-compose up to a working multi-node deployment requires reading source code and reverse-engineering config files.