nextcloud / nextcloud/nextcloud-talk-recording

Add clustering support for the recording server

Open
#3 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop enhancement
Dominant language
Python
Stars
34
Forks
16
Avg merge
5d 5h
Merged PRs (30d)
4

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Currently a single recording server can be configured in Nextcloud. Recording requires quite some CPU power to encode the video, so several recordings in parallel could overload a single server. A cluster of recording servers could be used to overcome that limitation.

In a first version a proxy/load balancer that has the same API (from the Nextcloud server point of view) as the recording server would be added. This proxy/load balancer would be configured in the Nextcloud settings, and it will redirect the recording requests to an specific recording server from those known to the proxy/load balancer. The proxy/load balancer would keep track of which recordings are being done in which server to send the appropriate stop requests.

The recording server could provide an endpoint to know its current load (either as in number of active recordings or based on actual system load) that the proxy/load balancer could use to decide where to place new recordings.

In a more advanced version the proxy/load balancer would also know about other proxy/load balancers and their recordings. This would make possible to set several proxy/load balancers in Nextcloud settings and randomly send the requests to one of them, trying with a different one if the request failed, to avoid a single point of failure if a single proxy/load balancer is configured and is not available.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the recording server API and the Nextcloud settings involved in configuring a single server. The issue describes proxy/load-balancer routing, recording tracking, load reporting, and multi-proxy failover, but names no files or tests. Before implementation, define which clustering version is in scope and how completion will be verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.