add initial goals documentation #1

Merged
patrik merged 8 commits from goals into main 2025-12-01 13:48:39 +01:00
Showing only changes of commit beecae7c09 - Show all commits

View file

@ -5,36 +5,36 @@
- 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**
marcsello marked this conversation as resolved Outdated

I think CDN deserves it's own section here. I personally have a few ideas for it.

I think CDN deserves it's own section here. I personally have a few ideas for it.
blint marked this conversation as resolved

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.
- **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**.
- **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.
- **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

This isn't a goal, that's an explanation.

This isn't a goal, that's an explanation.
- **Dynamic Registration & Discovery:**
- 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.
- **Dynamic Registration & Discovery:**
marcsello marked this conversation as resolved Outdated

What are device limits exactly?

What are device limits exactly?

Just too much copying and pasting. It should not be there.

Just too much copying and pasting. It should not be there.

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.
- **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.
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:**
- 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.
- **Peer-to-Peer (P2P) Sharing:**
blint marked this conversation as resolved Outdated

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

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.
- The system can automatically balance or replicate popular content across CDNs to optimize bandwidth usage and ensure availability.
- **Federation & Collaboration:**
- Multiple CDNs can share content and metadata within a trusted federation network.
blint marked this conversation as resolved Outdated

What does a "trusted federation network" mean in this context?

What does a "trusted federation network" mean in this context?

a connection between the instances via VPN

a connection between the instances via VPN

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.
- **Metadata Management:**
patrik marked this conversation as resolved Outdated

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.