---
# System prepended metadata

title: 'Option 1: Stream coming from c'

---

## Option 1: Stream coming from cloud

```plantuml

@startuml


entity Cloud as ec2cloud
actor host as host
actor participants
== Currently will need to schedule cloud resource \n for streaming using this ==
host -> ec2cloud: Play video for workout party
ec2cloud -> host : Start streaming video 
ec2cloud -> participants: Start streaming video


```
## Pros
- Video would be synced to all participants
- Even if host is leaves, it would not affect the streaming video
- Video quality will be great throughout the klass, and wont be affected as there is very little possibility for bandwidth issue on cloud


## Cons
- With the current infra can have only 4 streaming simultaneously on prod & 2 in uat
- Need to check schedule for infra everytime before scheduling 




## Option 2(Current Implementation): Host streaming

```plantuml
@startuml

actor host as host
== Host has access to video to be streamed  ==
actor participants

host -> participants: Click on play stream button

host -> participants: Stream video to other participants 

```

## Pros
- Cheapest solution with minimal effort
- Already had components to built for this solution
- Can have unlimited workout parties 

## Cons
- Have single point of failure(If trainer has bad bandwidth it's will affect )
- If trainer leaves the stream will be closed
- if trainer rejoins & start streaming, video will start from beginning
- Do not have ability to seek video



## Option 3 Host streaming but with a service in between

```plantuml
@startuml

actor host as host
entity VideoService as ec2cloud
== Host has access to video to be streamed  ==
actor participants

host -> ec2cloud: Click on play stream button

ec2cloud -> participants: Stream video to other participants 

ec2cloud -> host: Stream video to other participants 

```



## Pros
- Streaming would be synced for everyone
- Host will have access to start / stop ( may be ) 


## Cons
- Streaming would be charged pay per minutes
- We would need to use some services to achieve
- Will need to have development around this service into our ecosystem
- Will take time to R&D and then create these sort of system
- Pricing would be a factor when we use this


