- Group together parts of the code that must look like atomic, in a way that is transparent, scalable and easy-to-use for the programmer - Differently from monitors, the part of the code to group is not part of the definition of the objects, but is application dependent - Differently from transactions in databases, the code can be any code, not just queries on the DB **Transaction:** an atomic unit of computation (look like instantaneous and without overlap with any other transaction), that can access atomic objects. when executed alone, every transaction success