FEP Process: Guaranteeing an open and decentralized ecosystem

In the context I mentioned it would be how it is commonly done in Linked Data where e.g.

http://purl.org/goodrelations/v1#* namespace →
      http://www.heppnetz.de/ontologies/goodrelations/v1#* html specification docs

And for FEP’s, see FEP-888d: Using w3id.org/fep as a namespace for extension terms and for FEP documents (where I’ll have an issue with the non-descriptiveness of the namespace, that I will comment about on that thread).

Update: I added feedback on fep-888d regarding regarding descriptiveness and intuitive naming of namespaces and namespace prefixes. Two observations in the reply are relevant to copy here:

:point_right: A FEP is a formal specification of a functional building block for the creation of interoperable apps.

:point_right: Interoperability on the Fediverse is not about apps, but on finding common denominators where compliance exists.

1 Like

I think possibly the existence of a useful test-suite mitigates some or all of these concerns. It’s clear that the fediverse has evolved in the last 7 years. If it can evolve along with documentation and tested running code, then rather than a fork its showing what exists in reality and how developers can implement things and have confidence that the will interoperate with others that run the test suite. Phase (3) of the 3-step process would be some periodic publishing of this at the W3C.

1 Like

:point_right: We MUST get clarity on all the different Fediverse-related concepts and their relationships.

What is our own Domain?

In the portal content thread @helge quotes from my toot about having a Glossary. We NEED a glossary.

But we need more than that.

Somewhere in any fedi project and before or in parallel to deep-diving in tech issues, fedi developers are inevitably involved in doing some form of Domain-driven Strategic Design. Whether they do that explicitly or (in most cases) implicitly without being aware they do it.

DDD Strategic Design simply means figuring out which abstractions you are going to code, and what names to give them. You need to learn about the domain to do so. Gain enough expertise to code the right things.

:point_right:  Currently we do NOT know enough about our own domain to create good standards and process.

Ubiquitous language

In DDD terms the word for Glossary is Ubiquitous Language (UL):

Ubiquitous Language is the terminology that all stakeholders agree to use consistently when referring to concepts of a particular domain so that there is a common understanding of the domain.

Or in a picture that looks like this:

All stakeholders, code, specs and other resources use the same terminology
(source: infoq: ddd context mapping)

In the UL we should answer “What is an Extension?”, “What is a Vocabulary?”, “Are these proper namings, or should we rename?”, “What is the complete set of terminology we use?”.

Concept map

Having the UL, the Glossary, we should go further and figure out the relationships between the terms. And these might be diagrammed in a Concept Map. This concept map explains concept maps:

Concept maps are 2-dimensional diagrams of concepts and the relationships between them
(source: askopinion.com)

All kinds of assertions can be listed this way about AS/AP and trigger discussion to improve the domain model. For instance if I’d just brainstormingly gave a kick-off of this exercise, I might type stuff like:

  • A Pluggable Protocol can_have Protocol Extensions
  • ActivityPub is_a Pluggable Protocol
  • A Protocol Extension is_defined_by an Extension Specification
  • An Extension Specification defines Message Formats
  • An Extension Specification defines Message Exchange Patterns
  • An Extension Specification provides a machine-readable Message Context
  • etcetera

(Note: Don’t worry, just example. Consensus on our UL is a collective effort :slight_smile: )
(Note: Interestingly the UL when written out forms triples à la Linked Data :wink: )

Domain modeling the Fediverse

The usefulness of DDD Strategic Design goes further than use for our own domain. If you are some developer creating an eCommerce app, or a Cooking Recipes app, or a Bike Rental app, then:

  • You must model those domains in your code.
  • You must find correspondence to other domains you want to interoperate with.
  • That correspondence affects your AP extension design (vocabs, behavior to take into account).

So you might immediately do that on a technical level and code LD message formats in your project. Or you might do it with pen and paper on a napkin using DDD and create a good design with much less effort.

Bounded contexts

AP extensions are the techical representation of a Bounded Context in DDD. This is best demonstrated by another diagram:

A Banking context relating to an Expense Tracking context, and both providing different definition of a BankingAccount
(source: infoq: ddd context mapping)

In this example the BankingAccount has different behavior (message exchange pattern) depending on the bounded context. One context might be implemented as a federated Banking app in one project, and the other a federated Expense Tracking app provided by a completely independent group of developers.


FYI Robert W. Gehl wrote another great post on the emergence of the AP et al standards in preparation for his book Move Slowly and Build Bridges. Announced in this toot:

1 Like

I have objected to the W3C proposal Living Spec Editors Draft in my mailing list post here.

Instead, I prefer this process outlined by @aschrijver as it ensures far greater open source diversity and inclusion.

IMHO, a living spec belongs in the socialhub/codeberg/FEP area.

Additional concern is the attempt to railroad this through in 1 week.

The Editors will be adding the proposed Errata text to the Errata document after a week

One week is too short a review period, IMO.

1 Like

Let’s try some constructive comments on this to improve the fep process.

What we have here is a classic activism 3 steps forward 3 steps back process, this is a recurring issue.

As @aschrijver outlines the ideas behind this are good, the outcome is questionable, and the process still needs work.

There is a current undeclared fight in the FEP → W3C email list, that is likely unresolvable which is a fine example of the fluffy spiky debate, the only good outcome from my prospective and likely socialhub is making the fep more Legitimacy (political) - Wikipedia this is a post with ideas for process to help that happen.

To be a valid fep they should have a non-technical (social) explanation on why it’s needed and what are the social implications of this purely technical change.

As we are NOT only talking about technical points here, most are based on social ideas and have social outcomes for social networking. We need this wider buy in to make this process legitimate.

This process is simple and can be started by the original poster, then carried on by the wider community to build buy in and legitimacy.

Currently, both the fep and the W3C are too much black boxes to have any path to build buy in, thus are being ignored defacto.

This will likely continue without some basic activism as outlined above, the is much to learn from this long history of affective activism :slight_smile:

First some general points:

  • We do not deal with an “activism process” here. This thread is scoped purely to a “technology standardization process”.

  • There are discussions on SocialCG mailing list and here on how this process can be shaped, but characterizing this as an “undeclared fight” is inaccurate. People are thinking about improvements in the way we all collaborate. That can’t be to everyone’s satisfaction, so there will be some concessions and people that’ll have to accomodate.

  • The FEP’s “legitimacy” comes from how the process allows anyone to create FEP’s on any Fediverse-related subject. All that the FEP editor team does is ensure that minimum requirements outlined in the lean FEP process are met. It is the responsibility of the FEP authors to gain social/community ‘buy-in’ as they are brought to FINAL status.

  • FEP’s have no autoritative powers. They are merely recommendations and provide guidance for specific technical matters that are encountered when building federated software. Anyone in the ecosystem is free to either adopt them or not. So FEP’s are good-practices / best-practices at best.

  • Where FEP’s see popular use and uptake, in the proposed 3-stage standardization process, they become candidates for the W3C SocialCG to be picked up for closer examination. This may lead to the creation of W3C Notes or even adoption in next versions of protocol standards. If that happens the FEP will likely be SUPERCEDED and point to the W3C artifact that replaces it.

  • The FEP and W3C are only “black boxes” in the sense that they are figuring out collaborative processes, and can make those more easily discoverable. When it comes to SocialHub one way to do so for instance is by revamping the ActivityPub Rocks Portal. W3C has its own processes. Everything happens in public with full transparency.

This may be a good idea, though it is not really on the topic of this thread. FEP-a4ed: The Fediverse Enhancement Proposal Process is where the discussion is on-topic.

Nonetheless I think it may be good to document “Externalities” of a FEP, so that implementers become aware of them. One big disadvantage is the additional friction it adds to FEP authors. There’s already a barrier to writing a FEP, where many developers just skip the effort. The social implications of the technology they build is also discussed at length throughout the decentralized Fediverse on an app-by-app basis. And that is where people are actually affected by the particular technology implementation. So, I would prioritize the idea as a Nice-to-Have, and only when the FEP Process itself reaches more maturity and uptake.


You view everything on this forum from a perspective of “activism” and try desperately to enforce your activist framework onto this community. Many times before members have indicated they have no affinity with your methods, and by still pushing them you are not doing this community any good. In this light you should see the current Well-being procedure started by the @well-being team. Your comment above proves you can engage in fruitful substantive discussion.

In times when this forum was less active, queries to the member base led to conclusion that SocialHub currently works best as “just-a-forum” + “do-ocracy”. Here are some of these previous discussion topics:

While we can aspire to be more than that (and this topic is part of that effort), the SocialHub being a body that is purely scoped to the technical aspects of the Fediverse ecosystem is fine as well. As mentioned above deep social and cultural aspects are discussed at length everywhere. That’s decentralized discussion, from where the Fediverse emerges organically from grassroots movement.

From that perspective I am totally fine with the purely technical scope on this forum. If you want to shape your activism, you are advised to do it elsewhere where it is more appropriate than here.


"A river that needs crossing political and tech – On the political side, there is arrogance and ignorance, on the geek side there is naivety and over complexity

All code is ideology solidified into action – most contemporary code is capitalism, this is hardly a surprise if you think about this for a moment. Yes you can try and act on any ideology on top of this code but the outcome and assumptions are preprogramed… cant find any good links on this."

This is obviously untrue and the subject of the post, if you keep blindly repeating this as you do then I am going to start to treat this as bad faith.

Am I finding it hard to work with these “personalized” messy posts.

The Fediverse openweb is obviously activism - a term for all the protests, social movement, #FOSS social tech going on all the time that have made it possible for all the civil rights that are “common sense” to the readers of these posts, it’s not something “owned” or controlled by an individual on this forum. To keep trying to treat activism like this is childish and unhelpful, it does nothing to further these conversations. I have asked you for the last few years not to do this. I ask agen, please stop with this personalization of every general concept, it’s irrelevant and unhelpful.

Back to the subject of the post:

That’s a point of view, fluffy vs spiky, it’s fine, though from my expirence it’s about closing down conversation not useful for any positive outcome.

NOTE the post you are replying to is not about any of this, it’s about building Legitimacy in a space that is lacking Legitimacy (political) - Wikipedia so you are thus arguing for not doing this I think, how is this positive?

For someone to think the post they are replying to has anything to do with this is troubling, I don’t think any of us won’t this, and we should not be adding FUD on subjects like this. On a positive note, let’s just presume you are stating what we know for the rest.

It’s on topic.

This is an unhelpful point of view that technology is neutral, it’s not, the on subject “black box” problem in the post replying to “fep proces guaranteeing an open and decentralized ecosystem”

This part is irrelevant as it’s off subject, will reply on the hidden post.