You are here: Home / Jitsi Architecture Variants

Jitsi Architecture Variants

by Hawke Robinson last modified Jun 10, 2021 02:45 PM
Due to Jitsi’s modular, opensource, and highly configurable nature, there are many different architecture variations available when deploying a Jitsi ecosystem. This posting attempts to summarize, some more theoretical for the sake of discussion and analysis, a wide range of variants to consider for different implementations. Which Jitsi Architecture Variant to choose is based on each individual's specific scope and budget. Each successive variation tends to be more complicated than the prior variant. Note that these are NOT Jitsi official variations or terminology. These variation distinctions were created by Hawke Robinson as an attempt to bring some order to the many different potential approaches, and increase clarity when considering scalability, features, and budget constraints.

Many of these configurations are NOT RECOMMENDED for real-world use.  But as a researcher I like to try to consider as many possibilities as possible and then let the data determine which is the most appropriate in a given context.

Out of the ridiculously long list of variations here, which is not exhaustive, only a handful are really probably recommended for any given specific production implementation. I am attempting to R&D and load test as many of these variations as possible, documenting their pros and cons (when I can determine such information), but I probably won't be able to cover every variation in my research, so if anyone else has information on one that I have indicated is pending R&D, please let me know and I'll gladly append your information accordingly with attribution (if you wish).

There are also MANY, MANY more components that can be added to extend the core Jitsi features. Most of those are not listed here at this time. This particular matrix "just" covers:

  • Web server (nginx in this case)
  • Jitsi-meet
  • Prosody
  • Jicofo
  • Jitsi Videobridge (JVB)
  • Jibri
  • Jigasi
  • Vosk
  • Wav2letter (W2L)
  • OCTO
  • Docker
  • HA Proxy
  • Containerd
  • Kubernetes 

 

 

 

Var

Min. Num. Servers

Is cont’erd?

Has

containers?

Num

shards

web

nginx

Jitsi

Meet

Prosody

Primary

Prosody

Secondary

Jicofo

JVB

Jibri

Jigasi

Vosk

W2L

OCTO

Docker

HA Proxy

containerd

Kube

Notes

1a

(A1)

-

-

1

(A1)

(A1)

(A1)

-

(A1)

(A1)

-

-

-

-

-

-

-

-

-

max ~150 video senders per server

1b

(A1)

-

-

1

(A1)

(A1)

(A1)

-

(A1)

(A1)

(A1)

-

-

-

-

-

-

-

-

max ~150 video senders per server, only 1 recording room at a time, per server.

1c

(A1)

-

-

1

(A1)

(A1)

(A1)

-

(A1)

(A1)

(A1)

(A1)

(A1)

-

-

-

-

-

-

max ~150 video senders per server, only 1 recording room at a time, only one CC room at a time, per server.

1d

(A1)

-

-

1

(A1)

(A1)

(A1)

-

(A1)

(A1)

(A1)

(A1)

(A1)

(A1)

-

-

-

-

-

max ~150 video senders per server, only 1 recording room at a time, only one CC room at a time, per server.

2a

2

-

-

1

i

i

i

-

i

ii

-

-

-

-

-

-

-

-

-

max ~150 video senders per server

2b

3

-

-

1

i

i

i

-

i

ii & iii

-

-

-

-

-

-

-

-

-

max 300-400 video senders per server

2c

2

-

1

1

i

i

i

-

i

ii+c

-

-

-

-

-

Y

-

-

-

scalable video senders, max ~2,000 participants

3a

3

-

1

1

i

i

ii

-

i

iii+c

-

-

-

-

-

Y

-

-

-

scalable video senders, max ~2,500 participants

3b

4

-

1

1

i

i

ii

iii

i

iv+c

-

-

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants. (a)

3c

5

-

1

1

i

i

ii

iii

iv

v+c

-

-

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants.* (a)

3d

6

-

1

1

i

i

ii

iii

iv

v+c

vi

-

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants(a). Only 1 recording room at a time per server. * (a)

3e

6

-

2

1

i

i

ii

iii

iv

v+c

vi+c

-

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants (a). Scalable recording rooms, 1 containerized Jibri instance per recording room. * (a)

3f

7

-

1

1

i

i

ii

iii

iv

v+c

vi

vii

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants (a). only 1 recording room at a time per server. Added SIP support. * (a)

3g

7

-

3

1

i

i

ii

iii

iv

v+c

vi+c

vii+c

-

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants (a). scalable recording rooms (a). scalable sip (a).

3h

8

-

1

1

i

i

ii

iii

iv

v+c

vi

vii

viii

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants (a). only 1 recording room at a time per server. Added SIP support and closed captions, but only 1 CC room per server. * (a)

3i

9

-

4

1

i

i

ii

iii

iv

v+c

vi+c

vii+c

viii+c

-

-

Y

-

-

-

scalable video senders, max ~5,000 participants. scalable recording rooms (a). scalable sip and closed captions (a).

3j

10

-

1

1

i

i

ii

iii

iv

v+c

vi

vii

viii

ix

-

Y

-

-

-

scalable video senders, max ~5,000 participants. only 1 recording room at a time per server. Added SIP support and closed captions, but only 1 CC room per server * (a). Adds offline higher quality transcriptions, can queue up many recordings per instance but only work on one recording at a time (serial) (a).

3k

11

-

5

1

i

i

ii

iii

iv

v+c

vi+c

vii+c

viii+c

ix+c

-

Y

-

-

-

scalable video senders, max ?????(a) participants. scalable recording rooms (a). scalable sip and closed captions (a). scalable offline recording processing (potential parallel) (a).

3L

12

-

6

1

i

i

ii

iii

iv+c

v+c

vi+c

vii+c

viii+c

ix+c

-

Y

-

-

-

in-cluster scalable video senders, max ???? (a) participants. scalable recording rooms (a). scalable sip and closed captions (a). scalable offline recording processing (potential parallel) (a).

3m

 

-

0

1

i

i

ii

iii

iv & v

vi & vii

viii

ix

x

xi

-

-

-

-

-

max video senders ~300-400, ~5,000 participants. max 1 recording rooms at a time (a). sip support and closed captions (max 1 CC room at a time per server)(a). offline speech to text transcription recording processing (serial) (a).

3n

 

-

0

1

i

i

ii

iii

iv & v

vi & vii

viii & ix

x

xi

xii

 

-

 

 

-

max video senders ~300-400, ~5,000 participants. max ~2 recording rooms at a time (a). sip support and closed captions (max ~1 CC room at a time per server)(a). offline speech to text transcription recording processing (parallel x2) (a).

3o

 

-

0

1

i

i

ii

iii

iv & v

vi & vii

viii & ix

x & xii

xiii & xiv

xv

-

-

-

-

-

max video senders ~300-400, ~5,000 participants. max ~2 recording rooms at a time (a). sip support and closed captions (max ~2 CC room at a time per server)(a). offline speech to text transcription recording processing (serial) (a).

3p

 

-

0

1

i

i

ii

iii

iv & v

vi & vii

viii & ix

x & xii

xiii & xiv

xv & xvi

-

-

-

-

-

max video senders ~300-400, ~5,000 participants. max ~2 recording rooms at a time (a). sip support and closed captions (max ~2 CC room at a time per server)(a). offline speech to text transcription recording processing (parallel x2) (a).

3q

 

-

 

1

i+c

i+c

ii

iii

iv+c

v+c

vi+c

vii+c

viii+c

ix+c

-

Y

-

-

-

in-cluster scalable video senders, max ???? (a) participants. scalable recording rooms (a). scalable sip and closed captions (a). scalable offline recording processing (potential parallel) (a).

4a

 

Y

Y

1

c1

c1

c1

-

c1

c1

-

-

-

-

-

Y

-

-

-

 

4b

 

Y

Y

1

c1

c1

c1

-

c1

c2

-

-

-

-

-

Y

-

-

-

 

4c

 

Y

Y

1

c1

c1

c1

-

c1

c2

-

-

-

-

-

Y

-

-

-

 

4d

 

Y

Y

1

c1

c1

c2

-

c2

c3

-

-

-

-

-

Y

-

-

-

 

4e

 

Y

Y

1

c1

c1

c2

-

c2

c3

c4

-

-

-

-

Y

-

-

-

 

4f

 

Y

Y

1

c1

c1

c2

-

c2

c3

c4

c5

-

-

-

Y

-

-

-

 

4g

 

Y

Y

1

c1

c1

c2

-

c2

c3

c4

c5

c6

-

-

Y

-

-

-

 

4h

 

Y

Y

1

c1

c1

c2

-

c2

c3

c4

c5

c6

c7

-

Y

-

-

-

 

4i

 

Y

Y

1

c1

c1

c2

c3

c2

c4

c5

c6

c7

c8

-

Y

-

-

-

 

4j

 

Y

Y

1

c1

c1

c2

c3

c4

c5

c6

c7

c8

c9

-

Y

-

-

-

 

4k

 

Y

Y

2+

c1

c1

c2

-

c2

c3

-

-

-

-

Y

Y

-

-

-

 

4L

 

Y

Y

2+

c1

c1

c2

-

c2

c3

c4

-

-

-

Y

Y

-

-

-

 

4m

 

Y

Y

2+

c1

c1

c2

-

c2

c3

c4

c5

-

-

Y

Y

-

-

-

 

4n

 

Y

Y

2+

c1

c1

c2

-

c2

c3

c4

c5

c6

-

Y

Y

-

-

-

 

4o

 

Y

Y

2+

c1

c1

c2

-

c2

c3

c4

c5

c6

c7

Y

Y

-

-

-

 

5a

 

-

-

2+

(A1)

(A1)

(A1)

-

(A1)

(A1)

-

-

-

-

-

-

Y

-

-

 

5b

 

-

Y

2+

i

i

i

-

i

ii+c

-

-

-

-

-

Y

Y

-

-

 

5c

 

 

Y

2+

i

i

ii

-

i

iii+c

-

-

-

-

-

Y

Y

-

-

 

5d

 

 

 

2+

i

i

ii

iii

i

iv+c

-

-

-

-

-

Y

Y

-

-

 

5e

 

 

 

2+

i

i

ii

iii

iv

v+c

-

-

-

-

-

Y

Y

-

-

 

5f

 

 

 

2+

i

i

ii

iii

iv+c

v+c

-

-

-

-

-

Y

Y

-

-

 

5g

 

 

 

2+

i

i

ii

iii

iv

v+c

vi

-

-

-

-

Y

Y

-

-

 

5h

 

 

 

2+

i

i

ii

iii

iv

v+c

vi

vii

-

-

-

Y

Y

-

-

 

5i

 

 

 

2+

i

i

ii

iii

iv

v+c

vi

vii

viii

-

-

Y

Y

-

-

 

5j

 

 

 

2+

i

i

ii

iii

iv

v+c

vi

vii

viii

ix

-

Y

Y

-

-

 

5k

 

 

 

2+

i

i

ii

iii

iv

v+c

vi

vii

viii

ix

Y

Y

Y

-

-

 

5L

 

 

 

2+

i

i

ii

iii

iv

v+c

vi+c

vii+c

viii+c

ix+c

-

Y

Y

-

-

 

5m

 

 

 

2+

i

i

ii

iii

iv

v+c

vi+c

vii+c

viii+c

ix+c

Y

Y

Y

-

-

 

5n

 

 

 

2+

c1

c1

c2

c3

c4

c5

c6

c7

c8

c9

Y

Y

Y

-

-

 

6a

 

Y

Y

1+

i+c

i+c

ii+c

-

iv+c

v+c

-

-

-

-

Y

Y

Y

Y

Y

 

6b

 

Y

Y

1+

1c

1c

2c

-

3c

4c

-

-

-

-

Y

Y

Y

Y

Y

 

6c

 

Y

Y

1+

1c

1c

2c

3c

4c

5c

-

-

-

-

Y

Y

Y

Y

Y

 

6d

 

Y

Y

1+

1c

1c

2c

3c

4c

5c

6c

-

-

-

Y

Y

Y

Y

Y

 

6e

 

Y

Y

1+

1c

1c

2c

3c

4c

5c

6c

7c

-

-

Y

Y

Y

Y

Y

 

6f

 

Y

Y

1+

1c

1c

2c

3c

4c

5c

6c

7c

8c

-

Y

Y

Y

Y

Y

 

6g

 

Y

Y

1+

1c

1c

2c

3c

4c

5c

5c

7c

8c

9c

Y

Y

Y

Y

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* Not a generally recommended variant

(a) R&D pending. Unknown what current limitations might be. Listed numbers are estimated and not yet verified.

(A1) = All-in-one Server. Vertical scaling of hardware, no containerization.

(A+c) = All-in-one server + services containerization within the single server. Vertical scaling of hardware, with containerization of components that have multiple instances

(AC) = All-in-one server containerized. An all-in-one server instance wrapped in a container allowing spinning up multiple instances of this all-in-one (A1) server as needed.

i = Server One, On first server in group, ii = Server Two, second server in this group, iii = Server three, etc.

ii+c = server two, second in server group, plus containerized instances of this service

1c, 2c, 3c, = container count, 1c = first containerized service, 2c = second containerized service, etc.

 

 

 

 

 

 

Filed under: ,
Navigation