Would it be possible to define a consistent model and use common language to share our understanding of how this works? In the two posts above concepts are used interchangeably, and that is then compared to further variations that exist in the wild. For instance, are …
- Host / Node / Server
- Instance / Application
… two different concepts with multiple synonymous names?
For a die-hard fedi dev this may lead to an exclaiming of a “Duh, obviously they [are / are not]!”, but for an average dev the fuzziness in terminology make it very hard to wrap ones head around the mental model. The die-hards are the domain experts that should come to a consensus on which terms to use.
Take for example “Instance” and two interpretations I see people give that concept:
- “Instances / Servers federate together to form one big social network”
- “An Instance of an App is like an instance of an object in OOP. It represents a particular App installation”
Both might be true at the same time, but only if a server only ever serves a single app. In other words, accidentally true because it happens to fit an often observed case. How does this map to other cases? For instance, what if I don’t offer an App, but “a host of services that are composable into numerous applications” … See what I did? In one sentence I introduced more confusion, because there isn’t any well-defined model.