Distributed applications that adapt as their environment changes are developed from selfmanaging, self-configuring and self-optimising behaviours. This requires constant monitoring of the state of the environment, and analysing multiple sources of events. Event correlation is the process of correlating monitored events from multiple sources for further analysis. It is essential that event correlation supports reliable event management with minimal delay. This paper describes the design and implementation of an event correlation architecture for adaptive J2EE applications. The architecture supports flexible configuration of event correlation in terms of the reliability and performance. This is especially useful in situations when multiple sources of events have different level of requirements for reliability and performance. We evaluate the performance overhead of this event correlation architecture and demonstrate its practical usage in a case study of an adaptive image server applica...