Pod architecture

Sorry for the basic question, and I should probably just start to develop an app, but I’m a bit confused about my mental model, and reading the spec doesn’t seem to help.

Is a pod a single physical piece of software or is it a logical piece of software?

So, what I mean: say, I want to write a calendar app (or a todo app, or a note taking app, doesn’t really matter). I want to use my app from both my work phone and my private phone, as well as from a desktop app on my laptop, and a web app, in case I need to access it from a hotel computer some day because I forgot my laptop in a cab and my phone has no power left and I don’t have a charger with me (if you never had that happen to you, good for you).

The data is in my pod, and assuming there are mobile phone apps, and desktop apps, and a website that offers that interface, I assume I could connect from any of these to access my data in my pod. They’d all be thin clients over the respective part of my data.

But is this a single pod running on a single machine on the internet and they all have to connect to it? Or would I have a small physical pod running on my phone, which caches data and allows me to work with my app even while in flight mode, and then automatically merges upstream when it gets access to the internet again? But at least all the apps on my phone would be still syncing with each other, because they’re interacting through my local pod.

Or am I completely cut off once I don’t have internet access, and apps basically rely on being online 24/7 to work?

Or do I need to implement local caching entirely myself, and two apps on my phone wouldn’t exchange data through the local pod but rather only once they are back online?

Continuing these thoughts, I might be interested in hosting my own pod for my sensitive data, but I won’t have the same uptime as a pod hosted by a professional hosting service. Can I split my pod to have part or a copy of my pod only on my machine, but to have my high availability every day pod in the cloud, run by a professional hoster?

Or some of the data in my pod would benefit from living physically closer to a specific app running on a specific computer. Is it possible to designate parts of my data to live in a physical partial pod close to that machine, but still regard my overall pod as a single logical pod that acts like it has all the data constantly in sync and that, modulo efficiency, is a single pod?

Do my questions even make sense, or am I missing something fundamental?

Pods are generally on the internet (though theoretically it could be hosted on a phone of course). Apps can of course implement a local cache themselves and store it to the Pod when you get online, but that local cache is not your Pod. Most apps written so far have not implemented that.

Continuing these thoughts, I might be interested in hosting my own pod for my sensitive data, but I won’t have the same uptime as a pod hosted by a professional hosting service. Can I split my pod to have part or a copy of my pod only on my machine, but to have my high availability every day pod in the cloud, run by a professional hoster?

That might theoretically be possible, but the apps you use would need to be explicitly set up for that use case. The easier solution is probably just to have two different Pods that you connect the app to depending on what you’re planning to do.

Or some of the data in my pod would benefit from living physically closer to a specific app running on a specific computer. Is it possible to designate parts of my data to live in a physical partial pod close to that machine, but still regard my overall pod as a single logical pod that acts like it has all the data constantly in sync and that, modulo efficiency, is a single pod?

Generally, the Pod server and app should not need to know of each other. With apps written so far, generally it’s the client that writes data to your Pod from your own device, rather than from the app’s server (if any), so the important thing is probably more that your Pod is close to you. Whether/how it does that is up to your specific server. As far as I know nobody has done anything in this vein yet (there are far more pressing performance-related issues in Solid at the moment, besides the very issue of having something working in the first place).

2 Likes