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