add initial goals documentation #1
1 changed files with 23 additions and 23 deletions
46
goals.md
46
goals.md
|
|
@ -5,36 +5,36 @@
|
||||||
- Use cached segments for seamless seeking and fast resume.
|
- Use cached segments for seamless seeking and fast resume.
|
||||||
- If another user starts playback with the same parameters, reuse existing cached data to minimize transcoding and bandwidth usage.
|
- If another user starts playback with the same parameters, reuse existing cached data to minimize transcoding and bandwidth usage.
|
||||||
- **CDN Capabilities and P2P Federation**
|
- **CDN Capabilities and P2P Federation**
|
||||||
|
marcsello marked this conversation as resolved
Outdated
blint marked this conversation as resolved
marcsello
commented
I think it might worth including that what content does exactly a CDN node deliver? For starters I think serving only "media" would be good. I think it might worth including that what content does exactly a CDN node deliver? For starters I think serving only "media" would be good.
|
|||||||
- **Lightweight CDN Node:**
|
- **Lightweight CDN Node:**
|
||||||
- Each CDN node runs as a standalone executable binary that can be easily deployed by both technical and non-technical users.
|
- Each CDN node runs as a standalone executable binary that can be easily deployed by both technical and non-technical users.
|
||||||
- Minimal configuration required:
|
- Minimal configuration required:
|
||||||
- **Data Directory:** Defines where cached media files are stored.
|
- **Data Directory:** Defines where cached media files are stored.
|
||||||
- **Optional Name:** Human-readable CDN identifier (used for UI labeling and dynamic DNS registration).
|
- **Optional Name:** Human-readable CDN identifier (used for UI labeling and dynamic DNS registration).
|
||||||
- **Mode:** Can operate as a **shared CDN** (available to multiple users) or a **local-only CDN**.
|
- **Mode:** Can operate as a **shared CDN** (available to multiple users) or a **local-only CDN**.
|
||||||
|
|
||||||
- **Secure Connectivity:**
|
- **Secure Connectivity:**
|
||||||
- Each CDN connects to the **main metadata server** using a **pre-shared key** for authentication and trust establishment.
|
- Each CDN connects to the **main metadata server** using a **pre-shared key** for authentication and trust establishment.
|
||||||
- This ensures only authorized CDNs can register and exchange data with the main network.
|
- This ensures only authorized CDNs can register and exchange data with the main network.
|
||||||
|
blint marked this conversation as resolved
Outdated
marcsello
commented
This isn't a goal, that's an explanation. This isn't a goal, that's an explanation.
|
|||||||
|
|
||||||
- **Dynamic Registration & Discovery:**
|
- **Dynamic Registration & Discovery:**
|
||||||
|
marcsello marked this conversation as resolved
Outdated
marcsello
commented
What are device limits exactly? What are device limits exactly?
patrik
commented
Just too much copying and pasting. It should not be there. Just too much copying and pasting. It should not be there.
patrik
commented
Removed Removed
|
|||||||
- Upon startup, the CDN connects to the **main metadata server** and automatically registers itself.
|
- Upon startup, the CDN connects to the **main metadata server** and automatically registers itself.
|
||||||
- The main server assigns a **dynamic DNS name** to each CDN for seamless connectivity.
|
- The main server assigns a **dynamic DNS name** to each CDN for seamless connectivity.
|
||||||
- CDNs periodically update their metadata to report available content, storage capacity, and health status.
|
- CDNs periodically update their metadata to report available content, storage capacity, and health status.
|
||||||
|
|
||||||
- **Content Awareness & Distribution:**
|
- **Content Awareness & Distribution:**
|
||||||
- The main server maintains a global index of all available CDNs and the content cached on each.
|
- The main server maintains a global index of all available CDNs and the content cached on each.
|
||||||
- Users can choose which CDN should serve their content in the client UI.
|
- Users can choose which CDN should serve their content in the client UI.
|
||||||
- If a requested content is missing from the selected CDN, users have two options:
|
- If a requested content is missing from the selected CDN, users have two options:
|
||||||
1. **Request content replication:** Copy or prefetch the content from another CDN or the main server.
|
1. **Request content replication:** Copy or prefetch the content from another CDN or the main server.
|
||||||
2. **Stream fallback:** Stream the content directly from the main server or the nearest available CDN.
|
2. **Stream fallback:** Stream the content directly from the main server or the nearest available CDN.
|
||||||
|
|
||||||
- **Peer-to-Peer (P2P) Sharing:**
|
- **Peer-to-Peer (P2P) Sharing:**
|
||||||
|
blint marked this conversation as resolved
Outdated
marcsello
commented
I think this would be better in the "Nice to have/later" part. Sounds a bit complex to be a core feature. (especially if you want to pack all this up to a single binary) I think this would be better in the "Nice to have/later" part. Sounds a bit complex to be a core feature. (especially if you want to pack all this up to a single binary)
|
|||||||
- CDNs and the main server interconnect via **P2P protocols** to simplify file transfer and reduce reliance on centralized infrastructure.
|
- CDNs and the main server interconnect via **P2P protocols** to simplify file transfer and reduce reliance on centralized infrastructure.
|
||||||
- This enables faster, bandwidth-efficient distribution of popular content between geographically distributed CDNs.
|
- This enables faster, bandwidth-efficient distribution of popular content between geographically distributed CDNs.
|
||||||
|
blint marked this conversation as resolved
marcsello
commented
This is not a goal, this is an explanation. This is not a goal, this is an explanation.
|
|||||||
|
|
||||||
- **Federation & Collaboration:**
|
- **Federation & Collaboration:**
|
||||||
- Multiple CDNs can share content and metadata within a trusted federation network.
|
- Multiple CDNs can share content and metadata within a trusted federation network.
|
||||||
|
blint marked this conversation as resolved
Outdated
marcsello
commented
What does a "trusted federation network" mean in this context? What does a "trusted federation network" mean in this context?
blint
commented
a connection between the instances via VPN a connection between the instances via VPN
marcsello
commented
I think we should write that instead. To me it's more exact and therefore easier to understand. I think we should write that instead. To me it's more exact and therefore easier to understand.
|
|||||||
- The system can automatically balance or replicate popular content across CDNs to optimize bandwidth usage and ensure availability.
|
- The system can automatically balance or replicate popular content across CDNs to optimize bandwidth usage and ensure availability.
|
||||||
|
|
||||||
- **Metadata Management:**
|
- **Metadata Management:**
|
||||||
|
patrik marked this conversation as resolved
Outdated
patrik
commented
This part should be moved to the later section @blint . This part should be moved to the later section @blint .
|
|||||||
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue
I think CDN deserves it's own section here. I personally have a few ideas for it.