For a CMS Only Sitecore CD server (No xDB Tracking), is there any requirement to enable session state?
What standard Sitecore services would fail if there was no session state?
Sitecore support can provide the definite answer to see what would all break for example the in session personalization as mentioned by Kate. However here are some pointers which might be useful from my own experience:
SessionState
to ReadOnly
here. (With ReadOnly session state nothing will be updated in Session outside the scope of the Request)aspnet:AllowConcurrentRequestsPerSession
is on Sitecore's roadmap which can alleviate the locking issue if that is your concernEven with XM topology you can still use the in-session personalisation to deliver the personalised user experience based on the visitors' behaviour and information that Sitecore gathers during the session. You can achieve this in CMS-only mode without xDB and with just the XM license.
Plus you might need to store some custom attributes / flags in session if say you want to implement a basket on your Sitecore-based website.
Configuring the session state is particularly important if you have a cluster of two CD instances or more regardless of the load balancing type - CD cluster with sticky load balancing or CD cluster with non-sticky load balancing. Session state enables Sitecore to share data for a contact across multiple active sessions within a cluster. In this case the recommendation is to go with the "Out of process" mode for the session state configuration.
More details about configuring session state you can find here.