<p>I think <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/ae97/fep-ae97.md" rel="noopener">FEP-ae97</a> with server-independent IDs is the best way to make identities and data portable in <a class="hashtag" href="https://mitra.social/collections/tags/activitypub" rel="tag noopener">#ActivityPub</a> world.</p><p><a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/7628/fep-7628.md" rel="noopener">FEP-c390 + Move activity</a> makes identity portable but not data, and requires wide adoption to provide meaningful benefits. So far there haven't been much interest from developers.</p><p>FEP-ae97 with server-independent IDs makes data portable as well, and while it is not compatible with existing software, the server can support both AP flavors at the same time, so it is not worse than FEP-c390 + Move. I also found a way to make it work with Mastodon API, that makes it a clear winner.</p><p>There is still a couple of things that need to be figured out, of course:</p><p>- What it the best way to specify a list of hosts where data is stored? I'm not entirely satisfied with <code>?hosts=server1.example,server2.example</code> solution.<br>- How to encrypt data? It's harder to maintain confidentiality of private messages when they are stored on multiple servers, therefore they should be encrypted.</p>