A session compositor is responsible for a single user session. If a system compositor is present, the session compositor will run nested under the system compositor. Nesting is feasible because the protocol is asynchronous; roundtrips would be too expensive when nesting is involved. If no system compositor is present, a session compositor can run directly on the hw.
X applications can continue working under a session compositor by means of a root-less X server that is activated on demand.
Possible examples for session compositors include