keycloak-scim/docs/guides/images/high-availability/active-passive-sync.dio.svg
Alexander Schwartz 834ef79509
Adding a Keycloak High Availability section to Keycloak's docs
The content was moved over from the Keycloak Benchmark subproject.

Closes #24844

Signed-off-by: Alexander Schwartz <aschwart@redhat.com>
Co-authored-by: Pedro Ruivo <pruivo@redhat.com>
Co-authored-by: Michal Hajas <mhajas@redhat.com>
Co-authored-by: Kamesh Akella <kakella@redhat.com>
Co-authored-by: Ryan Emerson <remerson@redhat.com>
Co-authored-by: Anna Manukyan <amanukya@redhat.com>
Co-authored-by: Thomas Darimont <thomas.darimont@googlemail.com>
Co-authored-by: Stian Thorgersen <stian@redhat.com>
Co-authored-by: Thomas Darimont <thomas.darimont@googlemail.com>
Co-authored-by: AndyMunro <amunro@redhat.com>
2023-11-23 12:27:47 +00:00

21 lines
No EOL
17 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.

<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2023 Red Hat, Inc. and/or its affiliates
- and other contributors as indicated by the @author tags.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-->
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="513px" height="496px" viewBox="-0.5 -0.5 513 496" content="&lt;mxfile host=&quot;drawio-plugin&quot; modified=&quot;2023-11-21T18:57:41.312Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36&quot; etag=&quot;V2970gC0n6GeDnenUlwE&quot; version=&quot;20.5.3&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;23iRSUPoRavnBvh4doch&quot; name=&quot;Page-1&quot;&gt;7VpZb9s4EP41BnZfDN22H2s7bRebBQJkgW0faYm22FCiQdFXfv0OJVLU5fioErdp8xCIw3vmm/mGpAfuLNl/4mgd/8MiTAeOFe0H7nzgOGM/gP9ScCgEru8XghUnUSGyjeCRPGMltJR0QyKc1RoKxqgg67owZGmKQ1GTIc7Zrt5syWh91jVa4ZbgMUS0Lf2PRCJW23JGRv4Zk1WsZ7aDSVGTIN1Y7SSLUcR2FZF7N3BnnDFRfCX7GaZSd1ovRb+PR2rLhXGcinM6OGphW0Q3anOPGNQWIX4A8RwJFMJQmEPhjzXKMrLFf6qli4PWB2ebNMJySGvgTncxEfhxDR1BsAMAgCwWCYWSDZ+IklUK3xQvYYlTihaYPrCMCMKkWE3nTreYCwI6v280SEgUyYnLBh/UgAsmBEugIoO5Sbq6zyeYe1Ki1SzX19aRUpscEO8rIqWzT5glWOQKUbWuq+ynAOyNVXln4OBqtMZVKOiGSEFwVY5trAQfylBHjNay2QMnSWExUBOWtkKh+IFNJdj6JnYqI8hJO016sNO4ZaeWOXAEgUUVGRcxW7EU0TsjndYNZtrcM6nD3EzfsBAHFSXRRrC6ETOBuPggox4IUpZiLftI5MrzYXEa6RYLysKnf2OSFmLVSA6UsC1a5CuVJY4z8lwtMwHBwpQh5ONqGUekWlShuSLJBGdPZTx1XgJAxjY8VBpUzAEbWmHVSrGL1O2LIOGYIukldX74Hse0bmFgvCfiS+X7qxxq6KvSfK9tLAuH0uCwtS+moSx+rdaZbnlJ9+sNTP1Z27dvZW6/w78DKiPlAj5W8uNvfAgpQ09lBdc1WgKTLIysgZ6KlV/Z+/oItkEj2PrtYGt3BVuvh1gbnLbFX+mSpARIJ71U9zVa+vkMUbLgWxjivbGeiZS1OGnC5tFI2QxwOk6b2FxG3KNx+ryg6HZExb6Dour6wAispIRaSXkaaqMGhIo1qV7Vg0hzoGA8dO2J+fPqCbZjDYOxZf6C+jSFOlrT5GAtd3sefrui+k+M3yuJ1vHeCEB+4yTVjEFHAHSNZb3THDGVlwPytPveyNlunlidNieMX4kS3C5yvrFLVR2m6lc3OehUHFm5uvHhs1nAHbVZwB337cVn23z0OyE7mpD5HdcQr5aQuV0J2e9jijHG5A2N4bXv7m4eCm+RHUcoi/MNHAmInamyvuDoOVXuP0ielyv7/tW58mjojet07k/qY/WXELvuLRBavaCC/KECLntoWc7Jw1df+L7ibq2L32FxD5gTULu8ML+A1MdtvN7uwstrJ3L3DEUgmSKK0tAkzlUCaYAHwrQYdD4ztN4T9HNB+Y5Q5ROpw7XEd74hfzrw53IsQFJWgMqElhmjjBskLMG+DVEPvOJMmhm23+YVq4NX3D54pf2ON2NJsklBjfljjNwcrKJlHrQsHveWiFC2zT/lpGCxHRFhXIgClMj3mnSRrbss+uMRVmcW3Y8v15jrKGxO+ua+1lxDRiHhMqKBTaNDpYFyiqM85Ht1oAYTqwG1YsTu3l7Q3fsU85yxDOdCOtQN2XKZ4e+lObsrM1PAVxlwtZQd0rCUrGr13WHvFzrgXnkvde2bVMw4eWapQBcdl4OORHB0pvMqxNr2Ne7a9ijbrzmC0/yNwNs6gk4vXjovPgL6Y85StsnoIaeMJq9wvKaSewDPrTr5q5IFyvA7P/X71pG78VMHTbuPk6Y+6bx00uQxSxYbmOTUD0H6SI+aF70dF5BeP6duKJpfUBUeYH6G5t79Dw==&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="200" y="270" width="310" height="180" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 304px; height: 1px; padding-top: 447px; margin-left: 206px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Secondary Datacenter (passive)</div></div></div></foreignObject><text x="206" y="447" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Secondary Datacenter (passive)</text></switch></g><rect x="200" y="0" width="310" height="190" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 304px; height: 1px; padding-top: 7px; margin-left: 206px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Primary site (active)</div></div></div></foreignObject><text x="206" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Primary site (active)</text></switch></g><path d="M 285 80 L 285 109.76" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 285 117.76 L 282.33 109.76 L 287.67 109.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 340 60 L 425.03 60.03 L 425 149.76" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 425 157.76 L 422.34 149.76 L 427.67 149.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="230" y="40" width="110" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 60px; margin-left: 285px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Keycloak<br /></b></div></div></div></foreignObject><text x="285" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Keycloak&#xa;</text></switch></g><rect x="230" y="120" width="110" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 140px; margin-left: 285px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Infinispan</b></div></div></div></foreignObject><text x="285" y="144" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Infinispan</text></switch></g><path d="M 140 210 L 140 60.03 L 219.76 60" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 227.76 60 L 219.76 62.67 L 219.76 57.34 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 80 230 L 109.76 230" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 117.76 230 L 109.76 232.67 L 109.76 227.33 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="210" width="80" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 230px; margin-left: 40px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Browser</b></div></div></div></foreignObject><text x="40" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Browser</text></switch></g><path d="M 285 350.24 L 285 380" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 285 342.24 L 287.67 350.24 L 282.33 350.24 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="230" y="300" width="110" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 320px; margin-left: 285px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Infinispan</b></div></div></div></foreignObject><text x="285" y="324" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Infinispan</text></switch></g><rect x="230" y="380" width="110" height="40" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 400px; margin-left: 285px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Keycloak<br /></b></div></div></div></foreignObject><text x="285" y="404" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Keycloak&#xa;</text></switch></g><path d="M 140 250 L 140 400.03 L 219.76 400" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/><path d="M 227.76 400 L 219.76 402.67 L 219.76 397.34 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 340 400 L 429.03 400.03 L 428.97 310.52" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 428.96 302.52 L 431.63 310.51 L 426.3 310.52 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><rect x="160" y="215" width="100" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 230px; margin-left: 210px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Load Balancer<br /></div></div></div></foreignObject><text x="210" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Load Balancer&#xa;</text></switch></g><path d="M 330 480 L 410 480.03 L 410 482" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 482px; margin-left: 450px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">Communication path<br />after failover / switchover </div></div></div></foreignObject><text x="450" y="485" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">Communication path...</text></switch></g><path d="M 285 170.24 L 285 289.76" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 285 162.24 L 287.67 170.24 L 282.33 170.24 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><path d="M 285 297.76 L 282.33 289.76 L 287.67 289.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)rotate(-90 296 230.28571428571433)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 230px; margin-left: 296px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">&lt;&lt;sync&gt;&gt;</div></div></div></foreignObject><text x="296" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">&lt;&lt;sync&gt;&gt;</text></switch></g><rect x="370" y="160" width="110" height="140" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><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: 230px; margin-left: 425px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><b>Synchronously <br />replicated<br />Database</b></div></div></div></foreignObject><text x="425" y="234" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Synchronously...</text></switch></g><path d="M 140 210 L 160 230 L 140 250 L 120 230 Z" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/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>