You've probably noticed that the fediverse is made up of hundreds of loosely connected instances. These instances don't share every single message to every other instance, that would be unsustainable and each one would end up with a copy of the whole network. (bitcoin joke here) Each instance only needs to know about some users, and some posts.
Let's set up a scenario, you run an instance A, with a user: u1. There are other instances and users, we'll think about them soon. So, which messages does your instance know about?
- First, messages from your users, unsurprisingly, are known to your instance
- Second, if a user, say u1@A, follows someone on another server, say u2@B, A will ask B to notify it whenever u2 posts. Any posts from u2 from that point forward will be known to A. Note how this isn't retroactive, your server won't go and download their old posts!
- Third, if a remote user, say u3@C mentions one of your users: "@u1@A h
