is it correct representation?
@startuml
Entity Observer
Entity Observable
Entity Promise
activate Observer
create Observable
Observer -> Observable : run
activate Observable
create Promise
Observable -> Promise :deffer
Observable --> Observer : return promise
Observable -> Promise : resolve
deactivate Observable
Promise -> Observer : then
activate Observer
Observer -> Observer : processAsync
activate Observer
deactivate Observer
destroy Observable
@enduml
Looks too bulky