From the Meteor documentation:
Session provides a global object on the client that you can use to store an arbitrary set of key-value pairs. Use it to store things like the currently selected item in a list.
Question:
“Arbitrary” might be a little too vague for developers. How is the is the Meteor session implemented on the client and what are its limitations (if any) ?
The implementation of Session is very light weight. It’s basically a key-value store that can also store and invalidate reactive contexts. It is also a good starting point for learning how to extend meteor with your own reactive functions.
You can read the whole implementation here:
https://github.com/meteor/meteor/blob/master/packages/session/session.js