There are many problems whose most obvious and elegant solution is a long-running daemon, however, the overhead of defining the daemon's internal workings (forking, logging, pidfile management, signal handling, task scheduling, configuration, etc.) is off-putting. Additionally, the sheer amount of complexity involved with implementing concurrency makes a daemon a generally unattractive solution.
cdaemon works around these problems, providing classes and mix-ins which take care of much of the boilerplate code associated with typical non-concurrent daemons, while adding concurrency in the form of an event-driven system (the classic Producer/Consumer model).