Abstract. It is generally agreed that one of the key services of componentbased systems are transactions. However, an agreement on how components should be involved in transactions is still missing. In this paper, we discuss some of the key issues of combining components with transactions, and different approaches to achieve an appropriate level of transactional functionality in components. We distinguish between the explicit and implicit component participation approaches that differ by whether a component implements a part of transactional functionality or not. We discuss the influence of both approaches to concurrency control, recovery, and transaction context propagation. Then, we introduce our approach based on the use of several component controllers that manage transactional functionality on behalf of components. For a component, to be transactional, the only requirement is to fulfill a component contract which is specific to different transactional controller implementations. W...