@startuml abstract Activity Activity <|-- Communication Communication : Each comm involves 2 actors (sender/receiver) Communication -- Mailbox : < factory of Activity <|-- Execution Execution -- Host : < factory of Activity <|-- Io Io : To be refined into read / write? Io -- Disk : < factory of Activity <|-- Sleep Sleep : Blocks an actor without consuming resources Sleep : May still be located on resource (to detect failures) Sleep -- Actor : < factory of Activity <|-- RawActivity RawActivity : Does not use the platform RawActivity -- Mutex : < factory of RawActivity -- Semaphore : < factory of @enduml