Each instance keeps a local copy of the communities they’re federated with. Users of that instance interact with the local copy, and instances communicate with each other to tell what’s going on.
This means that, if .world crashes at 5PM, and you have an account on lemm.ee, you can go to lemm.ee’s local copy of world->worldnews, find a thread started at 4PM, comment on it, and other lemm.ee users will see and upvote/downvote your comment.
When .world is back on at 7PM, lemm.ee will tell it: “Hey, Cold_Brew_Enema said [Thanks a lot for the gold kind stranger] and got 6 downvotes”, and .world will update the thread with your comment and downvotes for users of all instances to see.
This is my understanding of how it works, and I’m not familiar with the actual code, but it seems to be close to reality.
There may be some things that don’t get synced if the instance holding the pending federation messages also goes down or restarts because AFAIK they are stored in memory, not in persistent storage.
If .world is down, can you still interact with it from other instances?
Each instance keeps a local copy of the communities they’re federated with. Users of that instance interact with the local copy, and instances communicate with each other to tell what’s going on.
This means that, if .world crashes at 5PM, and you have an account on lemm.ee, you can go to lemm.ee’s local copy of world->worldnews, find a thread started at 4PM, comment on it, and other lemm.ee users will see and upvote/downvote your comment.
When .world is back on at 7PM, lemm.ee will tell it: “Hey, Cold_Brew_Enema said [Thanks a lot for the gold kind stranger] and got 6 downvotes”, and .world will update the thread with your comment and downvotes for users of all instances to see.
This is my understanding of how it works, and I’m not familiar with the actual code, but it seems to be close to reality.
Excellent thank you!
There may be some things that don’t get synced if the instance holding the pending federation messages also goes down or restarts because AFAIK they are stored in memory, not in persistent storage.
I’m not sure it works like that but it makes sense that way.