A key requirement for a distributed collaborative application is that all participants see the same copy of a shared window-object at different points in time (WYSIWIS). This is needed to maintain a cohesive view of the problem. We recognize that user actions are generated based on their understanding of the context of the problem, where context is defined in terms global view of the shared window object. However, it is noted that, actions generated from different sites in response to the same context may not be compatible with each other since execution of one action may change the context in such a way that other actions become irrelevant. This notion of compatibility of action is the crucial distinguishing factor between a distributed collaborative system and other distributed systems where independent actions are generally serializable [1]. We propose a general framework that uses the concept of temporal epoch to implement a state-machine model of collaboration. We also explore the idea of 'contextual integrity' as a pre-requisite for perceptual consistency among users.