add initial goals documentation #1
1 changed files with 38 additions and 2 deletions
40
goals.md
40
goals.md
|
|
@ -4,8 +4,44 @@
|
|||
- **Caching & Performance:**
|
||||
- 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.
|
||||
- **CDN capabilities and P2P federation**
|
||||
- TODO: Define this feature in detail.
|
||||
- **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:**
|
||||
- Each CDN node runs as a standalone executable binary that can be easily deployed by both technical and non-technical users.
|
||||
- Minimal configuration required:
|
||||
- **Data Directory:** Defines where cached media files are stored.
|
||||
- **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**.
|
||||
|
||||
- **Secure Connectivity:**
|
||||
- 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.
|
||||
|
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:**
|
||||
|
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.
|
||||
- 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.
|
||||
|
||||
- **Content Awareness & Distribution:**
|
||||
- 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.
|
||||
- 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.
|
||||
2. **Stream fallback:** Stream the content directly from the main server or the nearest available CDN.
|
||||
|
||||
- **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.
|
||||
- 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:**
|
||||
- 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.
|
||||
|
||||
- **Future Idea - Predictive Caching:**
|
||||
|
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 .
|
||||
- CDNs may automatically pre-cache upcoming content based on user activity patterns.
|
||||
- If a user watches the first movie in a series, the CDN pre-fetches sequels (e.g., parts 2, 3, etc.).
|
||||
- If a user starts a new TV show, the CDN preloads subsequent episodes or seasons.
|
||||
- This predictive caching minimizes latency and improves the user experience by ensuring likely-next content is available instantly.
|
||||
|
||||
- **Metadata Management:**
|
||||
- Automatically identify and fetch metadata from databases like IMDb, TVDB, etc.
|
||||
- Allow users to edit and correct metadata manually.
|
||||
|
|
|
|||
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.