mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-06-07 15:22:03 +00:00
1 line
13 KiB
XML
1 line
13 KiB
XML
<svg id="mermaid-svg" width="100%" xmlns="http://www.w3.org/2000/svg" height="100%" style="max-width:1083px;" viewBox="-50 -10 1083 857"><style>#mermaid-svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;fill:#333;}#mermaid-svg .error-icon{fill:#552222;}#mermaid-svg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg .edge-thickness-normal{stroke-width:2px;}#mermaid-svg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg .marker{fill:#333333;}#mermaid-svg .marker.cross{stroke:#333333;}#mermaid-svg svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;}#mermaid-svg .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-svg text.actor > tspan{fill:black;stroke:none;}#mermaid-svg .actor-line{stroke:grey;}#mermaid-svg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg .sequenceNumber{fill:white;}#mermaid-svg #sequencenumber{fill:#333;}#mermaid-svg #crosshead path{fill:#333;stroke:#333;}#mermaid-svg .messageText{fill:#333;stroke:#333;}#mermaid-svg .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-svg .labelText,#mermaid-svg .labelText > tspan{fill:black;stroke:none;}#mermaid-svg .loopText,#mermaid-svg .loopText > tspan{fill:black;stroke:none;}#mermaid-svg .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-svg .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg .noteText,#mermaid-svg .noteText > tspan{fill:black;stroke:none;}#mermaid-svg .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg:root{--mermaid-font-family:"trebuchet ms",verdana,arial;}#mermaid-svg sequence{fill:apa;}</style><g></g><g><line id="actor0" x1="75" y1="5" x2="75" y2="846" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="0" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="75" dy="0">sender (client)</tspan></text></g><g><line id="actor1" x1="275" y1="5" x2="275" y2="846" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="200" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="275" dy="0">transport</tspan></text></g><g><line id="actor2" x1="475" y1="5" x2="475" y2="846" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="400" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="475" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="475" dy="0">pubsub</tspan></text></g><g><line id="actor3" x1="675" y1="5" x2="675" y2="846" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="600" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="675" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="675" dy="0">transport</tspan></text></g><g><line id="actor4" x1="908" y1="5" x2="908" y2="846" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="833" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="908" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="908" dy="0">receiver (client)</tspan></text></g><defs><marker id="arrowhead" refX="5" refY="2" markerWidth="6" markerHeight="4" orient="auto"><path d="M 0,0 V 4 L6,2 Z"></path></marker></defs><defs><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="16" refY="4"><path fill="black" stroke="#000000" stroke-width="1px" d="M 9,2 V 6 L16,4 Z" style="stroke-dasharray: 0, 0;"></path><path fill="none" stroke="#000000" stroke-width="1px" d="M 0,1 L 6,7 M 6,1 L 0,7" style="stroke-dasharray: 0, 0;"></path></marker></defs><defs><marker id="sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"></circle></marker></defs><g><rect x="833" y="75" fill="#EDF2AE" stroke="#666" width="150" height="36" rx="0" ry="0" class="note"></rect><text x="908" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="908">sign subscription (1)</tspan></text></g><text x="792" y="126" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">subscribe to messages</text><line x1="908" y1="155" x2="675" y2="155" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="600" y="165" fill="#EDF2AE" stroke="#666" width="150" height="36" rx="0" ry="0" class="note"></rect><text x="675" y="170" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="675">verify subscriber (1)</tspan></text></g><text x="575" y="261" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">subscribe</text><line x1="675" y1="290" x2="475" y2="290" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><text x="792" y="330" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">reject subscription</text><line x1="675" y1="359" x2="908" y2="359" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><line x1="465" y1="211" x2="918" y2="211" class="loopLine"></line><line x1="918" y1="211" x2="918" y2="369" class="loopLine"></line><line x1="465" y1="369" x2="918" y2="369" class="loopLine"></line><line x1="465" y1="211" x2="465" y2="369" class="loopLine"></line><line x1="465" y1="305" x2="918" y2="305" class="loopLine" style="stroke-dasharray: 3, 3;"></line><polygon points="465,211 515,211 515,224 506.6,231 465,231" class="labelBox"></polygon><text x="490" y="224" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">alt</text><text x="716.5" y="229" text-anchor="middle" class="loopText" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;"><tspan x="716.5">[subscriber verified?]</tspan></text></g><g><rect x="0" y="379" fill="#EDF2AE" stroke="#666" width="150" height="36" rx="0" ry="0" class="note"></rect><text x="75" y="384" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">sign message (2)</tspan></text></g><text x="175" y="430" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">send message</text><line x1="75" y1="459" x2="275" y2="459" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="200" y="469" fill="#EDF2AE" stroke="#666" width="150" height="36" rx="0" ry="0" class="note"></rect><text x="275" y="474" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="275">verify sender (2)</tspan></text></g><text x="375" y="565" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">queue message</text><line x1="275" y1="594" x2="475" y2="594" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><g><rect x="470" y="596" fill="#EDF2AE" stroke="#666" width="10" height="121" rx="0" ry="0" class="activation0"></rect></g><text x="175" y="634" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">reject message</text><line x1="275" y1="663" x2="75" y2="663" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><line x1="65" y1="515" x2="485" y2="515" class="loopLine"></line><line x1="485" y1="515" x2="485" y2="673" class="loopLine"></line><line x1="65" y1="673" x2="485" y2="673" class="loopLine"></line><line x1="65" y1="515" x2="65" y2="673" class="loopLine"></line><line x1="65" y1="609" x2="485" y2="609" class="loopLine" style="stroke-dasharray: 3, 3;"></line><polygon points="65,515 115,515 115,528 106.6,535 65,535" class="labelBox"></polygon><text x="90" y="528" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">alt</text><text x="300" y="533" text-anchor="middle" class="loopText" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;"><tspan x="300">[sender verified?]</tspan></text></g><text x="578" y="688" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">take message</text><line x1="480" y1="717" x2="675" y2="717" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><text x="792" y="732" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial; font-size: 16px; font-weight: 400;">deliver message</text><line x1="675" y1="761" x2="908" y2="761" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="0" y="781" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="813.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="75" dy="0">sender (client)</tspan></text></g><g><rect x="200" y="781" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="275" y="813.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="275" dy="0">transport</tspan></text></g><g><rect x="400" y="781" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="475" y="813.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="475" dy="0">pubsub</tspan></text></g><g><rect x="600" y="781" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="675" y="813.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="675" dy="0">transport</tspan></text></g><g><rect x="833" y="781" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="908" y="813.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="908" dy="0">receiver (client)</tspan></text></g></svg> |