Federation is when instances exchange information. For example, you posted to lemmy.ml, while using lemmy.world, and I'm seeing this post and replying to you from lemmy.max-p.me. That's federation in action, in this case with 3 instances involved. It runs on my server entirely in my control, I'm the admin of it. It's completely independent from lemmy.ml and lemmy.world but they all talk to eachother.
An instance is one website running lemmy. Lemmy.ml and lemmy.world are two examples. There's hundreds of them, all operating independently and sharing information.
Defederation is essentially when federation is cut off from a given server, think banning an entire instance essentially.
The fediverse is the name of this whole system: it's federation and universe smushed together, fediverse.
Cross-platform instances would be instances that can talk to multiple platforms. For example, Kbin lets you browse Lemmy threads and Mastodon microblogs from the same place. Mastodon users can somewhat see Lemmy posts. I've never seen it referred to as cross-platform though.
But why are there so many instances and from what I have seen they are mostly similar to each other in terms of features and such? Like why would one use lemmy.ml over lemmy.world or vice versa when they are federated?
Because instances are hosted by individual hobbyist and not a company that makes profit, the amount of data that an individual instance can store and process is much more limited by their hardware. Spreading the load across numerous hosters allows for a higher capacity of data storage and therefore total lemmy users. Because of this i encourage you to use more niche instances if they suit you.
As for why one would choose a particular instance over another; you'll find the each lemmy instance typically has its own social ecosystem and political consensus, because of this certain users will gravitate to the one that suits them best. For instance, lemmy.blahaj.zone is very LGBT heavy with an emphasis on the T, lemmy.world is quite liberal, lemmy.ml is typically socialist, hexbear.net is communist, and lemmy.dbzer0.com is pirate. While many of these are federated with eachother you will often notice an emphasis on certain subjects on an instance by instance basis
There are reasons already outlined, but beyond that, even if they were all equal and users picked them completely randomly, it prevents any single instance and therefore any owner or company hosting them from taking over the whole thing.
For example, with Twitter or Reddit, if they decide they don't like something and shut it down, that's it, it's gone. And with everyone locked into the ecosystem, you can't really just pack up and leave.
The fediverse on the other hand is essentially immune to that: the community can simply be moved to another instance, and users can migrate to different instances while still accessing the same content.
For example, lemmy.world defederates hexbear and lemmygrad, but I can access all 3 of them at the same time from my instance. There's also weird cases like lemmy.ml defederating ani.social, but I still can access those two from my instance as well no problem.
The admins are empowered to cut off instances they don't want on their server (for example, many don't want anything illegal or legally grey because they just don't want to deal with legal problems) and curate the experience for their users, and if it's not for you well you can go elsewhere without missing out.
Then there's fun stuff like different legal jurisdictions: Reddit being a US company has to comply with US laws even if the user is European or Australian or Chinese or Japanese. With the fediverse, someone local to all of those can make local instances without being completely cut off from the rest of the network, only subsets of it but still access things like programming.dev.
And thus, nobody can really take it away from us. Nobody can really shut it down. It's also somewhat censorship resistant because now you can't just ban Reddit, you have to keep track of and ban every Lemmy/Kbin/Mbin/Mastodon/Pleroma/Friendica/PeerTube/Sublinks instances in existence.
Fediverse is like the United Nations and instances are the countires. Countries with good relations communicate (federate) with each other but the ones that don't respect our values we might cut communications with (defederate). These defederated countries still continue to exist and there are people within those country that talk with eachother aswell as other countries they do get along with but they're essentially secluded from the rest of the world. However despite the defederation they still are in principle compatible with the rest of the world so we can open back the communication again if we so decide.
Other social media platforms like Instagram and Twitter are like the animal population; they too communicate within themselves but we don't have a common language and thus will always remain incompatible and can't ever federate with them and they (Twitter and Instagram) can't with each other either.
The main idea of the fediverse is that there is one standard (eg. lemmy), with many servers running a copy of that standard with their own settings (instances). These instances all interact in a way that it seems to the user like a single server (federation). At times the owners of each instance will want to block other instances (defederation).
Federation: your post on lemmy.world is downloaded by my instance, my reply is sent to yours.
Defederation: your instance (through its admins) decides to disconnect from mine, I can’t see or interact with your stuff unless I make an account in your instance.
Cross-platform I would typically assume refers to different platforms being able to talk to each other using ActivityPub, like Lemmy and Mastodon can do. Features may work but with quirks because of the ways they implement protocol. How well one platform works with another is actually undefined unless work is made to make them compatible. An example is Lemmy and Kbin, originally their upvotes and downvotes used different features of the protocol and were not compatible.
The explanation given here are very good. I just want to had add that theoretically, any Lemmy instance can communicate with another instance from another fediverse software but in practice, developers haven't had the chance yet to make sure every feature is compatible with the each every other software.
If you want to try sending message across the different instances and softwares of the fediverse without spamming or flooding people discussion spaces there is a dedicated community: !testfediverse@jlai.lu
Federation is one website simultaneously hosting and displaying content from another. Defederation is rejecting or rescinding federation. Not sure about the last.
So to run lemmy you create your own site, and then every other site that runs activitypub (the underlying engine) you can choose to download and mirror the data from them, with any changes automatically being sent to your instance. This is federation. If one instance starts posting stuff that is immoral, illegal, or just generally goes against what you want to have on your instance, you can choose not to download stuff from them any more. This is defederation.
Because every site running activitypub uses more-or-less the same underlying language, it means you can federate with instances that aren't the same and they'll more-or-less function. This is how mastodon threads are capable of sometimes popping up in lemmy posts.