If a groupware system is to be effectively used, especially over a wide-are network such as the Internet, where the quality of networking and computing resources are unpredictable, it should allow clients to tolerate client, link, and server failures. In particular, clients should be able to join groups and transfer groups' current state in the presence of most client and link failures. In order to reduce usage overhead, disconnected clients should also be able to rejoin groups without having to restart from scratch. Furthermore, lock management and group membership should tolerate transient failures in the system. In this paper, we introduce the notion of stateful group communication, which frees clients of administrative management of shared application state and allows fault-tolerant group join, state transfer, and rejoin. Stateful group communication is incorporated in Corona, a general-purpose, group communication service provider. In order to allow groups to tolerate transi...