Files
hotel-analysis/Скетч.svg

1 line
105 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" style="cursor:pointer;max-width:100%;max-height:1722px;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="2211px" viewBox="-0.5 -0.5 2211 1722" content="&lt;mxfile&gt;&#10; &lt;diagram id=&quot;7gCwj9mQwRpnqfD4ykJp&quot; name=&quot;Page-1&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;4779&quot; dy=&quot;3497&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Message Broker&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Apache Kafka&quot; c4Description=&quot;Очередь сообщений&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;2&quot;&gt;&#10; &lt;mxCell style=&quot;shape=cylinder3;size=15;direction=south;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-780&quot; y=&quot;-40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;connections-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управляет связями между адаптерами системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;3&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;-200&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;PMS Adapter&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Адаптер передачи сообщений в систему&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;4&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1690&quot; y=&quot;-120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Custom Adapter #N&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Адаптер передачи сообщений в систему&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;6&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1410&quot; y=&quot;40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;PMS&quot; c4Type=&quot;Software System&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#cccccc&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;7&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1690&quot; y=&quot;-480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;ERP&quot; c4Type=&quot;Software System&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#cccccc&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;8&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1410&quot; y=&quot;-480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Housekeeper&quot; c4Type=&quot;Software System&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#cccccc&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;9&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1130&quot; y=&quot;-480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;tasks-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управляет всеми тасками системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;21&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;-200&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;БД&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Postgress&quot; c4Description=&quot;Сохранение данных системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;22&quot;&gt;&#10; &lt;mxCell style=&quot;shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Web admin&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Typescript, React&quot; c4Description=&quot;Админка для управления системой&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;23&quot;&gt;&#10; &lt;mxCell style=&quot;shape=mxgraph.c4.webBrowserContainer2;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;strokeColor=#118ACD;fillColor=#23A2D9;strokeColor=#118ACD;strokeColor2=#0E7DAD;fontSize=12;fontColor=#ffffff;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;-960&quot; width=&quot;240&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Service Layer&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;24&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-400&quot; y=&quot;-280&quot; width=&quot;880&quot; height=&quot;600&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Mobile Apps&quot; c4Type=&quot;Container&quot; c4Technology=&quot;?&quot; c4Description=&quot;Отдельные приложения для работников&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;25&quot;&gt;&#10; &lt;mxCell style=&quot;shape=mxgraph.c4.webBrowserContainer2;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;strokeColor=#118ACD;fillColor=#23A2D9;strokeColor=#118ACD;strokeColor2=#0E7DAD;fontSize=12;fontColor=#ffffff;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;-960&quot; width=&quot;240&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Telegram Bot&quot; c4Type=&quot;Container&quot; c4Technology=&quot;?&quot; c4Description=&quot;Бот для управления системой&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;26&quot;&gt;&#10; &lt;mxCell style=&quot;shape=mxgraph.c4.webBrowserContainer2;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;strokeColor=#118ACD;fillColor=#23A2D9;strokeColor=#118ACD;strokeColor2=#0E7DAD;fontSize=12;fontColor=#ffffff;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;-960&quot; width=&quot;240&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Client Layer&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;27&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-400&quot; y=&quot;-1040&quot; width=&quot;880&quot; height=&quot;320&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;API Gateway Layer&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;31&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-400&quot; y=&quot;-640&quot; width=&quot;880&quot; height=&quot;280&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;REST API&quot; c4Type=&quot;Service&quot; c4Technology=&quot;?&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;32&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;-560&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;gRPC&quot; c4Type=&quot;Service&quot; c4Technology=&quot;?&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;33&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;-560&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;WebSocket&quot; c4Type=&quot;Service&quot; c4Technology=&quot;?&quot; c4Description=&quot;&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;34&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;-560&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;users-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управление пользователями системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;35&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;-200&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;notification-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управление уведомлениями системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;36&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;-40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;file-storage-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управление файлами системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;37&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;-40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;audit-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Аудит действий пользователя&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;38&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;-40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;scheduler-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Создание задач по расписанию&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;39&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-360&quot; y=&quot;120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;permissions-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управление правами доступа пользователей&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;40&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;events-service&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Управление мероприятиями&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;41&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Adapter Layer&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;42&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1730&quot; y=&quot;-200&quot; width=&quot;880&quot; height=&quot;440&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;ERP Adapter&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Адаптер передачи сообщений в систему&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;43&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1410&quot; y=&quot;-120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Housekeeping Adapter&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Адаптер передачи сообщений в систему&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;44&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1130&quot; y=&quot;-120&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Telegram Bot Adapter&quot; c4Type=&quot;Service&quot; c4Technology=&quot;Python&quot; c4Description=&quot;Адаптер передачи сообщений в систему&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;45&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1690&quot; y=&quot;40&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Data Layer&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;46&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-400&quot; y=&quot;400&quot; width=&quot;880&quot; height=&quot;280&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Cache&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Redis&quot; c4Description=&quot;Сохранение данных системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;50&quot;&gt;&#10; &lt;mxCell style=&quot;shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-80&quot; y=&quot;480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;File Storage&quot; c4Type=&quot;Container&quot; c4Technology=&quot;S3&quot; c4Description=&quot;Сохранение данных системы&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;51&quot;&gt;&#10; &lt;mxCell style=&quot;shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;200&quot; y=&quot;480&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Name=&quot;External System&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Layer&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;52&quot;&gt;&#10; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;-1730&quot; y=&quot;-520&quot; width=&quot;880&quot; height=&quot;240&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;mxCell id=&quot;55&quot; style=&quot;edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;43&quot; target=&quot;8&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;56&quot; style=&quot;edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;4&quot; target=&quot;7&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;57&quot; style=&quot;edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; source=&quot;44&quot; target=&quot;9&quot;&gt;&#10; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; c4Technology=&quot;e.g. JSON/HTTP&quot; c4Description=&quot;e.g. Makes API calls&quot; label=&quot;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Description%&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;[%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;64&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;39.93&quot; y=&quot;-774.5&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;39.56&quot; y=&quot;-584.5&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;65&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;39.62&quot; y=&quot;-420&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;40&quot; y=&quot;-220&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;66&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;39.089999999999996&quot; y=&quot;260&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;39.47&quot; y=&quot;460&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;67&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;-930&quot; y=&quot;20&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;-790&quot; y=&quot;20&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;68&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;-790&quot; y=&quot;40&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;-930&quot; y=&quot;40&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;69&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;-520&quot; y=&quot;9.23&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;-380&quot; y=&quot;9.23&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;object placeholders=&quot;1&quot; c4Type=&quot;Relationship&quot; id=&quot;70&quot;&gt;&#10; &lt;mxCell style=&quot;endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry width=&quot;240&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;-380&quot; y=&quot;29.23&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;-520&quot; y=&quot;29.23&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;/object&gt;&#10; &lt;/root&gt;&#10; &lt;/mxGraphModel&gt;&#10; &lt;/diagram&gt;&#10;&lt;/mxfile&gt;&#10;" onclick="(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&amp;&amp;src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&amp;&amp;!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&amp;&amp;evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://viewer.diagrams.net/?client=1&amp;page=0&amp;edit=_blank');}}})(this);"><defs/><g><g><path d="M 1010 955 C 1010 946.72 1036.86 940 1070 940 C 1085.91 940 1101.17 941.58 1112.43 944.39 C 1123.68 947.21 1130 951.02 1130 955 L 1130 1165 C 1130 1173.28 1103.14 1180 1070 1180 C 1036.86 1180 1010 1173.28 1010 1165 Z" fill="#23a2d9" stroke="#0e7dad" stroke-miterlimit="10" transform="rotate(90,1070,1060)" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1130 955 C 1130 963.28 1103.14 970 1070 970 C 1036.86 970 1010 963.28 1010 955" fill="none" stroke="#0e7dad" stroke-miterlimit="10" transform="rotate(90,1070,1060)" pointer-events="all" style="stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 203px; height: 1px; padding-top: 1060px; margin-left: 956px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Message Broker</b></font><div>[Container: Apache Kafka]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Очередь сообщений</font></font></div></div></div></div></foreignObject><text x="1058" y="1064" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Message Broker...</text></switch></g></g><g><rect x="1650" y="840" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 900px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>connections-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управляет связями между адаптерами системы</font></font></div></div></div></div></foreignObject><text x="1770" y="903" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">connections-service...</text></switch></g></g><g><rect x="40" y="920" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 980px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>PMS Adapter</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Адаптер передачи сообщений в систему</font></font></div></div></div></div></foreignObject><text x="160" y="983" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">PMS Adapter...</text></switch></g></g><g><rect x="320" y="1080" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1140px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Custom Adapter #N</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Адаптер передачи сообщений в систему</font></font></div></div></div></div></foreignObject><text x="440" y="1143" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">Custom Adapter #N...</text></switch></g></g><g><rect x="40" y="560" width="240" height="120" rx="12" ry="12" fill="#8c8496" stroke="#736782" pointer-events="all" style="fill: light-dark(rgb(140, 132, 150), rgb(126, 119, 135)); stroke: light-dark(rgb(115, 103, 130), rgb(152, 141, 165));"/></g><g><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: 238px; height: 1px; padding-top: 620px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>PMS</b></font><div>[Software System]</div><br /><div><font style="font-size: 11px"><font color="#cccccc" style="color: light-dark(rgb(204, 204, 204), rgb(62, 62, 62));"></font></font></div></div></div></div></foreignObject><text x="160" y="624" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">PMS...</text></switch></g></g><g><rect x="320" y="560" width="240" height="120" rx="12" ry="12" fill="#8c8496" stroke="#736782" pointer-events="all" style="fill: light-dark(rgb(140, 132, 150), rgb(126, 119, 135)); stroke: light-dark(rgb(115, 103, 130), rgb(152, 141, 165));"/></g><g><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: 238px; height: 1px; padding-top: 620px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>ERP</b></font><div>[Software System]</div><br /><div><font style="font-size: 11px"><font color="#cccccc" style="color: light-dark(rgb(204, 204, 204), rgb(62, 62, 62));"></font></font></div></div></div></div></foreignObject><text x="440" y="624" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">ERP...</text></switch></g></g><g><rect x="600" y="560" width="240" height="120" rx="12" ry="12" fill="#8c8496" stroke="#736782" pointer-events="all" style="fill: light-dark(rgb(140, 132, 150), rgb(126, 119, 135)); stroke: light-dark(rgb(115, 103, 130), rgb(152, 141, 165));"/></g><g><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: 238px; height: 1px; padding-top: 620px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Housekeeper</b></font><div>[Software System]</div><br /><div><font style="font-size: 11px"><font color="#cccccc" style="color: light-dark(rgb(204, 204, 204), rgb(62, 62, 62));"></font></font></div></div></div></div></foreignObject><text x="720" y="624" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Housekeeper...</text></switch></g></g><g><rect x="1370" y="840" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 900px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>tasks-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управляет всеми тасками системы</font></font></div></div></div></div></foreignObject><text x="1490" y="903" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">tasks-service...</text></switch></g></g><g><path d="M 1370 1535 C 1370 1526.72 1423.73 1520 1490 1520 C 1521.83 1520 1552.35 1521.58 1574.85 1524.39 C 1597.36 1527.21 1610 1531.02 1610 1535 L 1610 1625 C 1610 1633.28 1556.27 1640 1490 1640 C 1423.73 1640 1370 1633.28 1370 1625 Z" fill="#23a2d9" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1610 1535 C 1610 1543.28 1556.27 1550 1490 1550 C 1423.73 1550 1370 1543.28 1370 1535" fill="none" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1593px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>БД</b></font><div>[Container: Postgress]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Сохранение данных системы</font></font></div></div></div></div></foreignObject><text x="1490" y="1596" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">БД[Container: Postgress]...</text></switch></g></g><g><path d="M 1370 88 C 1370 83.58 1373.58 80 1378 80 L 1602 80 C 1606.42 80 1610 83.58 1610 88 L 1610 232 C 1610 236.42 1606.42 240 1602 240 L 1378 240 C 1373.58 240 1370 236.42 1370 232 Z" fill="#118acd" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(17, 138, 205), rgb(49, 154, 211)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1375 88 C 1375 86.34 1376.34 85 1378 85 L 1551 85 C 1552.66 85 1554 86.34 1554 88 L 1554 94 C 1554 95.66 1552.66 97 1551 97 L 1378 97 C 1376.34 97 1375 95.66 1375 94 Z M 1559 88 C 1559 86.34 1560.34 85 1562 85 L 1568 85 C 1569.66 85 1571 86.34 1571 88 L 1571 94 C 1571 95.66 1569.66 97 1568 97 L 1562 97 C 1560.34 97 1559 95.66 1559 94 Z M 1576 88 C 1576 86.34 1577.34 85 1579 85 L 1585 85 C 1586.66 85 1588 86.34 1588 88 L 1588 94 C 1588 95.66 1586.66 97 1585 97 L 1579 97 C 1577.34 97 1576 95.66 1576 94 Z M 1593 88 C 1593 86.34 1594.34 85 1596 85 L 1602 85 C 1603.66 85 1605 86.34 1605 88 L 1605 94 C 1605 95.66 1603.66 97 1602 97 L 1596 97 C 1594.34 97 1593 95.66 1593 94 Z M 1375 110 C 1375 105.58 1378.58 102 1383 102 L 1597 102 C 1601.42 102 1605 105.58 1605 110 L 1605 227 C 1605 231.42 1601.42 235 1597 235 L 1383 235 C 1378.58 235 1375 231.42 1375 227 Z" fill="#23a2d9" stroke="none" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185));"/></g><g><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: 238px; height: 1px; padding-top: 160px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Web admin</b></font><div>[Container: Typescript, React]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Админка для управления системой</font></font></div></div></div></div></foreignObject><text x="1490" y="164" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Web admin...</text></switch></g></g><g><rect x="1330" y="760" width="880" height="600" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 1349px; margin-left: 1340px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">Service Layer</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="1340" y="1349" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">Service Layer...</text></switch></g></g><g><path d="M 1650 88 C 1650 83.58 1653.58 80 1658 80 L 1882 80 C 1886.42 80 1890 83.58 1890 88 L 1890 232 C 1890 236.42 1886.42 240 1882 240 L 1658 240 C 1653.58 240 1650 236.42 1650 232 Z" fill="#118acd" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(17, 138, 205), rgb(49, 154, 211)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1655 88 C 1655 86.34 1656.34 85 1658 85 L 1831 85 C 1832.66 85 1834 86.34 1834 88 L 1834 94 C 1834 95.66 1832.66 97 1831 97 L 1658 97 C 1656.34 97 1655 95.66 1655 94 Z M 1839 88 C 1839 86.34 1840.34 85 1842 85 L 1848 85 C 1849.66 85 1851 86.34 1851 88 L 1851 94 C 1851 95.66 1849.66 97 1848 97 L 1842 97 C 1840.34 97 1839 95.66 1839 94 Z M 1856 88 C 1856 86.34 1857.34 85 1859 85 L 1865 85 C 1866.66 85 1868 86.34 1868 88 L 1868 94 C 1868 95.66 1866.66 97 1865 97 L 1859 97 C 1857.34 97 1856 95.66 1856 94 Z M 1873 88 C 1873 86.34 1874.34 85 1876 85 L 1882 85 C 1883.66 85 1885 86.34 1885 88 L 1885 94 C 1885 95.66 1883.66 97 1882 97 L 1876 97 C 1874.34 97 1873 95.66 1873 94 Z M 1655 110 C 1655 105.58 1658.58 102 1663 102 L 1877 102 C 1881.42 102 1885 105.58 1885 110 L 1885 227 C 1885 231.42 1881.42 235 1877 235 L 1663 235 C 1658.58 235 1655 231.42 1655 227 Z" fill="#23a2d9" stroke="none" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185));"/></g><g><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: 238px; height: 1px; padding-top: 160px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Mobile Apps</b></font><div>[Container: ?]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Отдельные приложения для работников</font></font></div></div></div></div></foreignObject><text x="1770" y="164" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Mobile Apps...</text></switch></g></g><g><path d="M 1930 88 C 1930 83.58 1933.58 80 1938 80 L 2162 80 C 2166.42 80 2170 83.58 2170 88 L 2170 232 C 2170 236.42 2166.42 240 2162 240 L 1938 240 C 1933.58 240 1930 236.42 1930 232 Z" fill="#118acd" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(17, 138, 205), rgb(49, 154, 211)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1935 88 C 1935 86.34 1936.34 85 1938 85 L 2111 85 C 2112.66 85 2114 86.34 2114 88 L 2114 94 C 2114 95.66 2112.66 97 2111 97 L 1938 97 C 1936.34 97 1935 95.66 1935 94 Z M 2119 88 C 2119 86.34 2120.34 85 2122 85 L 2128 85 C 2129.66 85 2131 86.34 2131 88 L 2131 94 C 2131 95.66 2129.66 97 2128 97 L 2122 97 C 2120.34 97 2119 95.66 2119 94 Z M 2136 88 C 2136 86.34 2137.34 85 2139 85 L 2145 85 C 2146.66 85 2148 86.34 2148 88 L 2148 94 C 2148 95.66 2146.66 97 2145 97 L 2139 97 C 2137.34 97 2136 95.66 2136 94 Z M 2153 88 C 2153 86.34 2154.34 85 2156 85 L 2162 85 C 2163.66 85 2165 86.34 2165 88 L 2165 94 C 2165 95.66 2163.66 97 2162 97 L 2156 97 C 2154.34 97 2153 95.66 2153 94 Z M 1935 110 C 1935 105.58 1938.58 102 1943 102 L 2157 102 C 2161.42 102 2165 105.58 2165 110 L 2165 227 C 2165 231.42 2161.42 235 2157 235 L 1943 235 C 1938.58 235 1935 231.42 1935 227 Z" fill="#23a2d9" stroke="none" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185));"/></g><g><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: 238px; height: 1px; padding-top: 160px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Telegram Bot</b></font><div>[Container: ?]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Бот для управления системой</font></font></div></div></div></div></foreignObject><text x="2050" y="164" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Telegram Bot...</text></switch></g></g><g><rect x="1330" y="0" width="880" height="320" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 309px; margin-left: 1340px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">Client Layer</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="1340" y="309" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">Client Layer...</text></switch></g></g><g><rect x="1330" y="400" width="880" height="280" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 669px; margin-left: 1340px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">API Gateway Layer</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="1340" y="669" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">API Gateway Layer...</text></switch></g></g><g><rect x="1370" y="480" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 540px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>REST API</b></font><div>[Service: ?]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));"></font></font></div></div></div></div></foreignObject><text x="1490" y="543" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">REST API...</text></switch></g></g><g><rect x="1650" y="480" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 540px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>gRPC</b></font><div>[Service: ?]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));"></font></font></div></div></div></div></foreignObject><text x="1770" y="543" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">gRPC...</text></switch></g></g><g><rect x="1930" y="480" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 540px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>WebSocket</b></font><div>[Service: ?]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));"></font></font></div></div></div></div></foreignObject><text x="2050" y="543" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">WebSocket...</text></switch></g></g><g><rect x="1930" y="840" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 900px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>users-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управление пользователями системы</font></font></div></div></div></div></foreignObject><text x="2050" y="903" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">users-service...</text></switch></g></g><g><rect x="1370" y="1000" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1060px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>notification-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управление уведомлениями системы</font></font></div></div></div></div></foreignObject><text x="1490" y="1063" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">notification-service...</text></switch></g></g><g><rect x="1650" y="1000" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1060px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>file-storage-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управление файлами системы</font></font></div></div></div></div></foreignObject><text x="1770" y="1063" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">file-storage-service...</text></switch></g></g><g><rect x="1930" y="1000" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1060px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>audit-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Аудит действий пользователя</font></font></div></div></div></div></foreignObject><text x="2050" y="1063" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">audit-service...</text></switch></g></g><g><rect x="1370" y="1160" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1220px; margin-left: 1371px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>scheduler-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Создание задач по расписанию</font></font></div></div></div></div></foreignObject><text x="1490" y="1223" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">scheduler-service...</text></switch></g></g><g><rect x="1650" y="1160" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1220px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>permissions-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управление правами доступа пользователей</font></font></div></div></div></div></foreignObject><text x="1770" y="1223" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">permissions-service...</text></switch></g></g><g><rect x="1930" y="1160" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1220px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>events-service</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Управление мероприятиями</font></font></div></div></div></div></foreignObject><text x="2050" y="1223" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">events-service...</text></switch></g></g><g><rect x="0" y="840" width="880" height="440" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 1269px; margin-left: 10px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">Adapter Layer</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="10" y="1269" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">Adapter Layer...</text></switch></g></g><g><rect x="320" y="920" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 980px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>ERP Adapter</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Адаптер передачи сообщений в систему</font></font></div></div></div></div></foreignObject><text x="440" y="983" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">ERP Adapter...</text></switch></g></g><g><rect x="600" y="920" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 980px; margin-left: 601px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Housekeeping Adapter</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Адаптер передачи сообщений в систему</font></font></div></div></div></div></foreignObject><text x="720" y="983" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">Housekeeping Adapter...</text></switch></g></g><g><rect x="40" y="1080" width="240" height="120" rx="12" ry="12" fill="#23a2d9" stroke="#0e7dad" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1140px; margin-left: 41px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Telegram Bot Adapter</b></font><div>[Service: Python]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Адаптер передачи сообщений в систему</font></font></div></div></div></div></foreignObject><text x="160" y="1143" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">Telegram Bot Adapter...</text></switch></g></g><g><rect x="1330" y="1440" width="880" height="280" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 1709px; margin-left: 1340px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">Data Layer</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="1340" y="1709" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">Data Layer...</text></switch></g></g><g><path d="M 1650 1535 C 1650 1526.72 1703.73 1520 1770 1520 C 1801.83 1520 1832.35 1521.58 1854.85 1524.39 C 1877.36 1527.21 1890 1531.02 1890 1535 L 1890 1625 C 1890 1633.28 1836.27 1640 1770 1640 C 1703.73 1640 1650 1633.28 1650 1625 Z" fill="#23a2d9" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 1890 1535 C 1890 1543.28 1836.27 1550 1770 1550 C 1703.73 1550 1650 1543.28 1650 1535" fill="none" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1593px; margin-left: 1651px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Cache</b></font><div>[Container: Redis]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Сохранение данных системы</font></font></div></div></div></div></foreignObject><text x="1770" y="1596" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Cache...</text></switch></g></g><g><path d="M 1930 1535 C 1930 1526.72 1983.73 1520 2050 1520 C 2081.83 1520 2112.35 1521.58 2134.85 1524.39 C 2157.36 1527.21 2170 1531.02 2170 1535 L 2170 1625 C 2170 1633.28 2116.27 1640 2050 1640 C 1983.73 1640 1930 1633.28 1930 1625 Z" fill="#23a2d9" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/><path d="M 2170 1535 C 2170 1543.28 2116.27 1550 2050 1550 C 1983.73 1550 1930 1543.28 1930 1535" fill="none" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));"/></g><g><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: 238px; height: 1px; padding-top: 1593px; margin-left: 1931px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>File Storage</b></font><div>[Container: S3]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Сохранение данных системы</font></font></div></div></div></div></foreignObject><text x="2050" y="1596" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">File Storage...</text></switch></g></g><g><rect x="0" y="520" width="880" height="240" rx="10" ry="10" fill="none" stroke="#666666" stroke-dasharray="8 4" pointer-events="none" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));"/></g><g><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-end; justify-content: unsafe flex-start; width: 862px; height: 1px; padding-top: 749px; margin-left: 10px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">External System</div></b></font><div style="text-align: left">[Layer]</div></div></div></div></foreignObject><text x="10" y="749" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">External System...</text></switch></g></g><g><path d="M 440 920 L 440 686.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 440 681.12 L 443.5 688.12 L 440 686.37 L 436.5 688.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><path d="M 160 920 L 160 686.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 160 681.12 L 163.5 688.12 L 160 686.37 L 156.5 688.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><path d="M 720 920 L 720 686.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/><path d="M 720 681.12 L 723.5 688.12 L 720 686.37 L 716.5 688.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"/></g><g><path d="M 1769.93 265.5 L 1769.72 439.38" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 1769.57 454.38 L 1764.72 439.33 L 1774.72 439.43 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><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: 1px; height: 1px; padding-top: 360px; margin-left: 1770px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #404040; background-color: #ffffff; "><div style="display: inline-block; font-size: 10px; font-family: &quot;Helvetica&quot;; color: light-dark(#404040, #b6b6b6); line-height: 1.2; pointer-events: all; background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); white-space: nowrap; "><div style="text-align: left"><div style="text-align: center"><b>e.g. Makes API calls</b></div><div style="text-align: center">[e.g. JSON/HTTP]</div></div></div></div></div></foreignObject><text x="1770" y="363" fill="#404040" font-family="&quot;Helvetica&quot;" font-size="10px" text-anchor="middle">e.g. Makes API calls...</text></switch></g></g><g><path d="M 1769.62 620 L 1770 803.88" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 1770 818.88 L 1765 803.88 L 1775 803.88 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><path d="M 1769.09 1300 L 1769.47 1483.88" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 1769.47 1498.88 L 1764.47 1483.88 L 1774.47 1483.88 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><path d="M 800 1060 L 923.88 1060" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 938.88 1060 L 923.88 1065 L 923.88 1055 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><path d="M 940 1080 L 816.12 1080" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 801.12 1080 L 816.12 1075 L 816.12 1085 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><path d="M 1210 1049.23 L 1333.88 1049.23" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 1348.88 1049.23 L 1333.88 1054.23 L 1333.88 1044.23 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g><g><path d="M 1350 1069.23 L 1226.12 1069.23" fill="none" stroke="#828282" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/><path d="M 1211.12 1069.23 L 1226.12 1064.23 L 1226.12 1074.23 Z" fill="#828282" stroke="#828282" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(130, 130, 130), rgb(125, 125, 125)); stroke: light-dark(rgb(130, 130, 130), rgb(125, 125, 125));"/></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>