When should I use navigational state vs session state?
Navigational state is analogous to a query string in http: the Producer does not need to hold the transient state, the state is bookmarkable by the user, and there are no timeout issues as there are with sessions. Session state is analogous to HTTP Session state management. The arguments for using one of the other are similar to that with HTTP; Session state makes it simpler to use more complicated data structures but increases memory requirements and requires dealing with session timeouts. See section 5.6 Recommendations in the WSRP Primer.