@startuml DIAGRAM participant Producer participant Consumer participant Callback_Queue participant Callback_Stack Producer --> Consumer: Next() Producer <-- Consumer: Subscribe Consumer --> Callback_Queue: Add to queue Callback_Queue --> Callback_Stack: Remove from queue \nwhen corresponding \nfunctions are called @enduml