Abstract : In an asynchronous distributed system, independent processes run at varying speeds and may even crash; they communicate through unsynchronized primitives, like sending and receiving messages. To perform shared computation, processes need to coordinate their actions. This is theoretically modeled as solving a coordination task, where processes start with some inputs and have to output values satisfying certain conditions. A fundamental task is consensus, from which it is possible to solve any other coordination task. However, this task is not solvable in asynchronous environments in which process failure may occur. We study sub-consensus tasks, i.e., coordination tasks that are weaker than consensus. In particular, we focus on renaming which requires processes to rename in a tighter name space, set-consensus which extends consensus by allowing processes to decide on a small number of values and the committee-decision. In the later, processes try to solve simultaneously several instances of the consensus problem and each process is required to decide in at least one instance. We first explore, through algorithmic reductions, the relationships between these sub-tasks. The second part deals with the use of failure detector to solve set agreement. A failure detector is a distributed oracle that gives hints on failures. We determine the relative computational power provided by various families of failure detectors. The last part demonstrates that failure detectors can be seen as mechanisms that restrict the set of possible executions.