The xDB stores two kinds of session information - shared and private . You can think of shared session state as the contact store - it has information about the contact, devices used, and engagement plan states. Private session state contains information about interactions - such as goals triggered. When you install Sitecore on a single machine, both types of session data are stored InProc.
In the Sitecore Experience Database, you can use a session state server to share all your contact sessions across different browsers and devices. Configuring out-of-process session state is important if you have deployed an environment with multiple content delivery servers or clusters of content delivery servers.
Tracking the session state of your contacts is important regardless of whether you install a standalone environment or a fully scalable environment. For example, it is possible to track two simultaneous contact sessions from two different devices, such as from a desktop web browser or a mobile phone.
If you decide to deploy a large, fully scalable environment with vertical and horizontal scaling, then session state becomes even more important. For example, in a multi-content delivery cluster environment, you can share contact information between content delivery instances to ensure that contacts stay connected to the particular cluster where their interaction originated.
Here is described how you configure session database: