@startuml scale max 900*520 skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName "DejaVu Sans Mono" skinparam defaultFontSize 13 skinparam ArrowColor #8295a0 skinparam classBorderColor #2b6f8e skinparam classBackgroundColor #edf6fa skinparam classFontColor #183f53 skinparam roundcorner 10 top to bottom direction title A2 STRUCTURE — queue length 1 and three task contexts class "01 QueueMessage" as Message { sequence : uint32_t payload : uint32_t checksum : uint32_t } class "02 Queue<1 × QueueMessage>" as Queue <> { uxLength = 1 uxItemSize = 12 waiting : List_t } class "03 receiver" as Receiver <> class "04 sender" as Sender <> class "05 verifier" as Verifier <> class "06 bounded evidence[12]" as Evidence Sender -down-> Queue : xQueueSend copies bytes Queue -down-> Receiver : xQueueReceive copies bytes Receiver ..> Message Sender ..> Message Receiver --> Evidence : publish Sender --> Evidence : publish Verifier --> Evidence : digest Verifier ..> Queue : verifies FIFO / states @enduml