@startuml autonumber " # " skinparam shadowing false skinparam sequence { ArrowColor Black ActorBorderColor Black LifeLineBorderColor Black LifeLineBackgroundColor Black ParticipantBorderColor Black } skinparam ControlBorderColor White skinparam ControlBackgroundColor White participant "Client" as A0 order 10100 activate A0 #CadetBlue participant "Server" as A1 order 10200 activate A1 #CadetBlue rnote over A0 : Idle / rnote over A1 : Listen autonumber stop [<[#White]-- A0 autonumber resume deactivate A0 note over A0 : Need control " " as T0 order 10101 A0 -[#Blue]> T0 : Request(1) activate T0 #Silver activate A0 #CadetBlue rnote over A0 : Wait(1) autonumber stop [<[#White]-- A0 autonumber resume deactivate A0 note over A0 : Need control " " as T1 order 10102 A0 -[#Blue]> T1 : Request(2) activate T1 #Silver activate A0 #CadetBlue rnote over A0 : Wait(3) T0 -[#Blue]> A1 : Request(1) deactivate T0 deactivate A1 autonumber stop [<[#White]-- A0 autonumber resume activate A1 #MediumPurple rnote over A1 : Work(1) autonumber stop [<[#White]-- A0 autonumber resume deactivate A1 note over A1 : Completed control " " as T2 order 10199 A1 -[#Blue]> T2 : Response(1) activate T2 #Silver activate A1 #CadetBlue rnote over A1 : Listen T1 -[#Blue]> A1 : Request(2) deactivate T1 deactivate A1 autonumber stop [<[#White]-- A0 autonumber resume activate A1 #MediumPurple rnote over A1 : Work(2) autonumber stop [<[#White]-- A0 autonumber resume deactivate A1 note over A1 : Completed control " " as T3 order 10198 A1 -[#Blue]> T3 : Response(2) activate T3 #Silver activate A1 #CadetBlue rnote over A1 : Listen T2 -[#Blue]> A0 : Response(1) deactivate T2 deactivate A0 autonumber stop [<[#White]-- A0 autonumber resume activate A0 #CadetBlue rnote over A0 : Wait(2) T3 -[#Blue]> A0 : Response(2) deactivate T3 deactivate A0 autonumber stop [<[#White]-- A0 autonumber resume activate A0 #CadetBlue rnote over A0 : Idle autonumber stop [<[#White]-- A0 autonumber resume deactivate A0 deactivate A1 @enduml