- @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
 
 
  |