nextcloud / nextcloud/nextcloud-talk-recording
Add clustering support for the recording server
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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