The problem of rollback recovery is traditionally approached using a model oriented to packet delivery. Instead, we introduce a model centered around complex sessions, and we explain why this model is more appropriate. Using this model, we extract a basic coordination scheme that is common to the three distributed activities that compose rollback recovery: checkpointing, rollback and disposal. The basic coordination scheme is refined to describe each of the three activities.