In memory snap

Hello Everyone,
Snap introduce in memory snap. Can anyone explain the how it’s work behind the scene and what is the difference between join and in memory snaps? Any recommending scenario where we can use memory lookup snap?