@startuml scale max 900*520 skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName "DejaVu Sans Mono" skinparam defaultFontSize 13 skinparam rectangleBorderColor #2b6f8e skinparam rectangleBackgroundColor #edf6fa skinparam ArrowColor #8295a0 top to bottom direction title A1 CONTEXT — command producer, timer daemon and callbacks rectangle "01 Application task\ncontroller · priority 2" as App rectangle "02 Timer command queue\nlength 8 · copy command" as Queue rectangle "03 Timer daemon task\npriority 3 · own stack" as Daemon rectangle "04 Active timer lists\none-shot + auto-reload" as Lists rectangle "05 Callback application code\nshort · non-blocking" as Callback App --> Queue : start / reset / change / stop Queue --> Daemon : receive command Daemon --> Lists : update expiry Lists --> Daemon : expiry at tick Daemon --> Callback : direct call @enduml