Fishjam Architecture
Understanding how Fishjam works under the hood
This document explains the technical architecture of Fishjam and how data flows through the system.
High-level Architecture
Streaming with Fishjam is simple: you create a room, add peers to it, and start streaming. Below is a high-level overview of how Fishjam works.
Components Overview
1. Your Backend Server
Your application's backend server is responsible for:
- Authenticating users
- Creating rooms using Fishjam Server SDKs
- Generating peer tokens for clients
- Managing room lifecycle and permissions
2. Fishjam Media Server
The Fishjam Media Server is the core infrastructure component that:
- Routes audio and video streams between participants
- Handles WebRTC negotiations and connections
- Manages different room types (conference, audio-only, livestream)
- Processes and transcodes media when needed
- Enforces security policies and token validation
3. Client Applications
Client applications (React Native, React) use Fishjam Client SDKs to:
- Connect to rooms using peer tokens
- Send and receive audio/video streams
- Handle device management (cameras, microphones)
- Manage connection state and reconnections
Data Flow
1. Room Creation Flow
2. Media Streaming Flow
Next Steps
To understand different room types in detail, see Room Types Explained.
To learn about security and token management, see Security & Token Model.
Ready to implement? Start with our tutorials: