title: Maintaining state in Asp.Net MVC website
body: <p>I'm currently designing a new website built on MVC and I wonder what is the right way to manage state.<br>
  The state should contain the userId and some structs of the user info, and should be kept during the whole session of the user while he's logged in (across http requests) </p>
  
  <p>The important criteria:<br>
  1) Support scalability<br>
  2) Performance</p>
  
  <p>The easy way is to use the Session object, but it doesn't support scalability. If different requests during the session go through different IIS servers, the session won't be kept. Although I've heard of load balancing tools which route all requests of a single session through the same machine, I'm not sure that it's a good practice to rely on it (isn't it?)</p>
  
  <p>Another option that I've read about, is keeping the state data in special state servers which are running a RAM DB (like Cassandra for Linux or Redis for Windows). But it seems to me an overkill at this stage of the development.</p>
  
  <p>Do you have any other suggestions?
  I would like to start with something simple at the moment, but keep the design ready for a more advanced solution at the future.</p>
  
  <p>Any best practice or code/design suggestions will be appreciated.</p>
  
  <p>Thanks,<br>
  Edi.</p>