I have read that TempData is backed by session in Asp.Net MVC, but only valid for the duration of the current request. This makes it appropriate for Redirect2Action etc.
Given that it’s only valid for the current request, does that mean that you won’t get into issues with load balancers and session on WebFarms. Basically because you’re only on one webserver per request.
Would it be an option to back it by the Request.Items collection instead?
TempData is only valid for the current and next request which is why it is stored in the session state. Storing it with the request would not work.
So any limitations that would break saving items in session state (e.g. load balances) will break TempData as well.
See the documentation for TempDataDictionary