Had an idea with regards to clustering and user sessions. Instead of sending messages to
the cluster when a individual user session is refreshed all nodes send a periodic update
message. Obviously that's only for user sessions and not for admin updates, where we
should still send invalidation messages for each update.
Each node would keep a note of all user sessions where it has updated LastSessionRefresh,
and once every period it would send this list to all nodes. This should mean that instead
of sending a message every time a single session is updated, we send a single message per
node every 60 seconds or so (should be configurable). When receiving a message from the
cluster the node would go through the list and update the user sessions where the received
LastSessionRefresh is higher than the one it has itself. Nodes still use the mem user
sessions store, but with the cache on top.