a wdialog session manager which stores its session information in a
small daemon called the "state daemon".

This aproach has many advantages

First, Daemon_session supports real concurrency, any number of
instances of the applicaiton can run at once. Second, the application
need not be a daemon. Third, if the application crashes (even though
that isn't likely in Ocaml :P) session state will not be lost, if done
correctly users will not even notice that something has crashed, they
will simply see a pause in response. Fourth, in contrast with the
memory session manager garbage collection is done in parallel, greatly
improving throughput.
