1
0
Fork 0
mirror of synced 2024-07-09 00:16:13 +12:00
appwrite/docs/specs/realtime.drawio.svg

502 lines
40 KiB
XML
Raw Normal View History

2020-10-22 04:03:33 +13:00
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="601px" height="941px" viewBox="-0.5 -0.5 601 941" content="&lt;mxfile host=&quot;f9ef0e50-cb69-45cb-82f3-2ba3d523be62&quot; modified=&quot;2020-10-21T06:45:25.633Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.49.1 Chrome/83.0.4103.122 Electron/9.2.1 Safari/537.36&quot; etag=&quot;__njOXjHwtSaF6-Rm9ZA&quot; version=&quot;13.6.5&quot;&gt;&lt;diagram id=&quot;6hGFLwfOUW9BJ-s0fimq&quot; name=&quot;Page-1&quot;&gt;5Vtbc5s6EP41fkwGEPjymDhue2bamZw6nbSPCihYDUYcIcd2f/2RQITL4tTTIUiZPiRGKwm03+63rC5M0HJ7+MhxtvnCIpJMPCc6TNDNxPNcF83lj5IcS0kwc0pBzGmkG9WCNf1FtLBqtqMRyVsNBWOJoFlbGLI0JaFoyTDnbN9u9siS9lMzHBMgWIc4gdJ7GolNKZ17s1r+idB4Uz3ZnS7Kmi2uGmtN8g2O2L4hQqsJWnLGRHm1PSxJosCrcCn7fThR+zIwTlJxTge/7PCMk53WTY9LHCtlSSR110XGxYbFLMXJqpZec7ZLI6Lu6MhS3eYzY5kUulL4kwhx1IbEO8GkaCO2ia6Fo9aK5GzHQz0OPTKBeUx0K1SK1Agb3bSmHwnbEsGPsgEnCRb0uW09rJ0gfmlX4yQvNFQnYHvfuPnGgPMAbldZtudUECm9uv0HoNjGaL+RLdcZLnTby+ByJh7PhAtyeFVVXYummpk6NLlzXd7XRHcr9m4aJPedAdwKAXjWJI3UXYt25FkqlhvHKPAMYjR9P8xDkHmBKeJBz/pC8hzHNI2l+J7xJ8KNO1aXfN50RMcKAEJfSUQl25wL+Xf7TSr4Yf3t2jqQkD8iSK4L9B+BbeRAxXfV/TLQpR/6Zur65tAsHHXhLIbOLGJoz7vR2sjWg1vVbHzgZgC3e/KQs/BJDs1zoMOOTVjPaRM2cEYk7LvK8Ku5XNOtzKWqLkBuWc4nKUvNJ2HAq859V3pDeNU7ysL60jCDUR4mYis7svquQ03PDVODOBTMvq520h84/YUV3+xD59ysawh0XCPserOsazE0+XTXW0ZTUZvM70xT0bxjijIi6F4da7wM47zZVWCPgdxXDSTtwo+NTqr4o1lXdytKf2LYVqQd3NjnkmYBIkozLYSMMj2PGzUtdJE9Dvt6RDnlsO4QDlttKFgxAURTe2xiMIj02QR5poxSjeZEGIE0Mr0YO24YgUH2dqdadP04SWiWk3Hi6iJoAfKSBjQACXrwCIZIYyEeNs0ZwStnzDkjgkyyZObThWXUmQ+Cywx2zXwAOmPOfKrAbymhQPAdlVDWLiV0YRmXUHDF0y5CAXRGJRR8QwFAbFm5Qz3bDNXRIQNnPmxCrqP+H0Hpz0dCLrBo0/AtJzZDGCVwxjKKRSsA1hvFG8sof8k64iBG8UcyCoIbzMuEWpFodXcl5i5MJXy/J5UY5LSaA/T/G9cQq4yklaUYOwzhW/Sutc0ovjGjGMkU34VRDC63z0FY/8xwdI0TnIYWHoacjXnOz4f78RNvmgilpRz2NBaFkqUkz3Bayb4SrO5zR7ekqn7g3Q7y6c0+7fs0MJ/+t1MfQlw/slRc5IWfX8kGrpcd5E/R0ynq9lp9VZsyvlVjqDpXT1lnJKSPNNSLALIjVyBFUXEEdqmu1cPDBD+oDz0KCZfaiEIVOSpZ2CrvZeofx/mWqh2Axvn1/JgLoprg4sz2Llde5MQkJRwLokTVAe7yJjhV5s6kX8uxbC9/g04vjE1jdPxVuploO6W8a6iURTdBXborosmFd8qpmfTYx6T4RmVDo4ikIDRJwEhyjcOnuJAvWSKRRTcpS8kwTPDbRECQB2jWw4PFEDyAB52G2OAAuvcgdDrpQ+Y2OHyYCxvHIwgM4gFfIo3twQ4ov4GizaohHKUzO1j0ADN/oxdIBW7zg4N/7+6MY4I8g5h4AJN14SmXlBkHxvcNAgOX7NfrlXFIgulokMhi/dFneQCt/nQWrf4H&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<path d="M 380 200 L 380 233.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 238.88 L 376.5 231.88 L 380 233.63 L 383.5 231.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 440 180 L 473.63 180" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 478.88 180 L 471.88 183.5 L 473.63 180 L 471.88 176.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="320" y="160" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Appwrite API
</div>
</div>
</div>
</foreignObject>
<text x="380" y="184" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Appwrite API
</text>
</switch>
</g>
<rect x="480" y="160" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 481px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Send all events
</div>
</div>
</div>
</foreignObject>
<text x="540" y="184" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Send all events
</text>
</switch>
</g>
<path d="M 380 280 L 380 313.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 318.88 L 376.5 311.88 L 380 313.63 L 383.5 311.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="320" y="240" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 260px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Messaging Worker
</div>
</div>
</div>
</foreignObject>
<text x="380" y="264" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Messaging Worker
</text>
</switch>
</g>
<rect x="320" y="320" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 340px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Redis - PUB/SUB
</div>
</div>
</div>
</foreignObject>
<text x="380" y="344" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Redis - PUB/SUB
</text>
</switch>
</g>
<path d="M 220 480 L 220 420 L 380 420 L 380 366.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 361.12 L 383.5 368.12 L 380 366.37 L 376.5 368.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 220 520 L 220 540 L 220 520 L 220 533.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 220 538.88 L 216.5 531.88 L 220 533.63 L 223.5 531.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="160" y="480" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 500px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Websocket 1
</div>
</div>
</div>
</foreignObject>
<text x="220" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Websocket 1
</text>
</switch>
</g>
<path d="M 220 560 L 220 580 L 220 560 L 220 573.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 220 578.88 L 216.5 571.88 L 220 573.63 L 223.5 571.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="160" y="540" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 550px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Connections
</div>
</div>
</div>
</foreignObject>
<text x="220" y="554" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Connections
</text>
</switch>
</g>
<path d="M 220 600 L 220 620 L 220 600 L 220 613.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 220 618.88 L 216.5 611.88 L 220 613.63 L 223.5 611.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="160" y="580" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 590px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Events
</div>
</div>
</div>
</foreignObject>
<text x="220" y="594" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Events
</text>
</switch>
</g>
<rect x="160" y="620" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 630px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Authorization
</div>
</div>
</div>
</foreignObject>
<text x="220" y="634" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Authorization
</text>
</switch>
</g>
<path d="M 380 480 L 380 366.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 361.12 L 383.5 368.12 L 380 366.37 L 376.5 368.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 520 L 380 533.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 538.88 L 376.5 531.88 L 380 533.63 L 383.5 531.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="320" y="480" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 500px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Websocket 2
</div>
</div>
</div>
</foreignObject>
<text x="380" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Websocket 2
</text>
</switch>
</g>
<path d="M 540 480 L 540 420 L 380 420 L 380 366.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 361.12 L 383.5 368.12 L 380 366.37 L 376.5 368.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 540 520 L 540 533.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 540 538.88 L 536.5 531.88 L 540 533.63 L 543.5 531.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="480" y="480" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 500px; margin-left: 481px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Websocket 3
</div>
</div>
</div>
</foreignObject>
<text x="540" y="504" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Websocket 3
</text>
</switch>
</g>
<ellipse cx="380" cy="425" rx="25" ry="25" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 425px; margin-left: 356px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Pull
</div>
</div>
</div>
</foreignObject>
<text x="380" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Pull
</text>
</switch>
</g>
<rect x="320" y="540" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 550px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Connections
</div>
</div>
</div>
</foreignObject>
<text x="380" y="554" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Connections
</text>
</switch>
</g>
<rect x="320" y="580" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 590px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Events
</div>
</div>
</div>
</foreignObject>
<text x="380" y="594" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Events
</text>
</switch>
</g>
<rect x="320" y="620" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 630px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Authorization
</div>
</div>
</div>
</foreignObject>
<text x="380" y="634" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Authorization
</text>
</switch>
</g>
<rect x="480" y="540" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 550px; margin-left: 481px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Connections
</div>
</div>
</div>
</foreignObject>
<text x="540" y="554" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Connections
</text>
</switch>
</g>
<rect x="480" y="580" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 590px; margin-left: 481px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Events
</div>
</div>
</div>
</foreignObject>
<text x="540" y="594" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Events
</text>
</switch>
</g>
<rect x="480" y="620" width="120" height="20" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 630px; margin-left: 481px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Authorization
</div>
</div>
</div>
</foreignObject>
<text x="540" y="634" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Authorization
</text>
</switch>
</g>
<path d="M 380 790 L 380 770 L 380 780 L 380 766.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 761.12 L 383.5 768.12 L 380 766.37 L 376.5 768.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 830 L 380 865 L 200 865 L 200 893.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 200 898.88 L 196.5 891.88 L 200 893.63 L 203.5 891.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 830 L 380 865 L 320 865 L 320 893.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 320 898.88 L 316.5 891.88 L 320 893.63 L 323.5 891.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 830 L 380 865 L 440 865 L 440 893.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 440 898.88 L 436.5 891.88 L 440 893.63 L 443.5 891.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 830 L 380 865 L 560 865 L 560 893.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 560 898.88 L 556.5 891.88 L 560 893.63 L 563.5 891.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="160" y="790" width="440" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 438px; height: 1px; padding-top: 810px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Clients
</div>
</div>
</div>
</foreignObject>
<text x="380" y="814" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Clients
</text>
</switch>
</g>
<path d="M 380 720 L 380 646.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 380 641.12 L 383.5 648.12 L 380 646.37 L 376.5 648.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 720 L 380 680 L 540 680 L 540 646.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 540 641.12 L 543.5 648.12 L 540 646.37 L 536.5 648.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 380 720 L 380 680 L 220 680 L 220 646.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 220 641.12 L 223.5 648.12 L 220 646.37 L 216.5 648.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<rect x="320" y="720" width="120" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 740px; margin-left: 321px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
LoadBalancer
</div>
</div>
</div>
</foreignObject>
<text x="380" y="744" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
LoadBalancer
</text>
</switch>
</g>
<rect x="0" y="10" width="370" height="90" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 362px; height: 1px; padding-top: 0px; margin-left: 5px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; max-height: 100px; overflow: hidden; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<h1>
<span>
Real Time
<br/>
</span>
<span style="font-size: 12px ; font-weight: normal">
Specification for adding, a sclabale, realtime stream to trasmit Appwrite system and user generated events to any platform.
</span>
<br/>
</h1>
</div>
</div>
</div>
</foreignObject>
<text x="5" y="12" fill="#000000" font-family="Helvetica" font-size="12px">
Real Time...
</text>
</switch>
</g>
<ellipse cx="220" cy="425" rx="25" ry="25" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 425px; margin-left: 196px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Pull
</div>
</div>
</div>
</foreignObject>
<text x="220" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Pull
</text>
</switch>
</g>
<ellipse cx="540" cy="425" rx="25" ry="25" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 425px; margin-left: 516px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Pull
</div>
</div>
</div>
</foreignObject>
<text x="540" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Pull
</text>
</switch>
</g>
<rect x="160" y="900" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 920px; margin-left: 161px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Websocket
</div>
</div>
</div>
</foreignObject>
<text x="200" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Websocket
</text>
</switch>
</g>
<rect x="280" y="900" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 920px; margin-left: 281px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
MQTT
</div>
</div>
</div>
</foreignObject>
<text x="320" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
MQTT
</text>
</switch>
</g>
<rect x="400" y="900" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 920px; margin-left: 401px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
Socket.io
</div>
</div>
</div>
</foreignObject>
<text x="440" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Socket.io
</text>
</switch>
</g>
<rect x="520" y="900" width="80" height="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 920px; margin-left: 521px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
SSE
</div>
</div>
</div>
</foreignObject>
<text x="560" y="924" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
SSE
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>