Skip to main content
Version: Next

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.

Fishjam Data Flow

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 Rooms.

To learn about security and token management, see Security & Token Model.

Ready to implement? Start with our tutorials: