Load Assets Sync and ASync

I’m learning to load Asset. But I’m confused. I need “short precise definitions” of these.

I know these are used to load assets. But, what’s the difference?

  • Asset Registry
  • FindObject, LoadObject, UnloadObject (I know difference between asset registry and these)
  • StreamableManager
  • Object Libraries

is the AssetRegistry Async?

And I really wonder Why are there too many alternative ways to do something in Unreal Engine? Why didn’t they all gather in a module(e.g AssetRegistry or something else)? Thanks.

Please someone answer this!
I’m in the same boat since there’s not a unique way loading assets on runtime and it becomes so confusing. I’ve tried all these approaches and the result is the same always but which is the correct one?