Abstract:There is currently little reuse of either design or code in the development of collaborative applications. Though there are some application frameworks for this domain, they tend to be rather inflexible in the functionality they offer. This paper seeks to provide design reuse in the form of architectural patterns that focus on low-level horizontal issues: distribution, message exchange, functional decomposition, sharing data, concurrency and synchronisation. We base these patterns on a number of well-established patterns in the domain of distributed applications, concentrating on the specific issues that are encountered in the domain of collaborative applications. We also outline the relation between these low-level architectural patterns and the high-level functionality that collaborative applications offer. By codifying this knowledge and experience in the form of patterns, we hope for a wider support of low-level architectural design to the community of collaborative applications and thus a further advance of the field.