{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/deployment/integrate-kms/production-best-practices","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/integrate-kms/production-best-practices","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"type":"markdown"},"seo":{"title":"Production best practices","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"production-best-practices","__idx":0},"children":["Production best practices"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This guide covers production-ready deployment patterns for ","Ripple Custody"," with any KMS platform (HSM, Cloud KMS, or MPC). These patterns ensure high availability, observability, and operational resilience."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Applies to"]},": All KMS integrations — both HSM and MPC deployments."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"namespace-segmentation","__idx":1},"children":["Namespace segmentation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For production deployments, use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["namespace segmentation"]}," to isolate different components and enable multi-tenancy."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-namespace-structure","__idx":2},"children":["Recommended namespace structure"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Namespace"},"children":["Namespace"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Components"},"children":["Components"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custody-core"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Core infrastructure"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notary, Core services"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custody-vaults"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault workloads"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault instances"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custody-networks"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Network adapters"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Blockchain indexers, network bridges"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["custody-monitoring"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Observability"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Prometheus, Grafana, alerting"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"benefits","__idx":3},"children":["Benefits"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Security isolation"]},": Network policies restrict cross-namespace traffic."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Resource quotas"]},": Limit resource consumption per namespace."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["RBAC Boundaries"]},": Fine-grained access control per component"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Operational clarity"]},": Clear separation of concerns."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Compliance"]},": Meet regulatory requirements for multi-tenant isolation"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"implementation","__idx":4},"children":["Implementation"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Create namespaces\nkubectl create namespace custody-core\nkubectl create namespace custody-vaults\nkubectl create namespace custody-networks\nkubectl create namespace custody-monitoring\n\n# Apply network policies (restrict cross-namespace traffic)\nkubectl apply -f network-policies/\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Helm deployment"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"helm upgrade --install harmonize ./harmonize-custody \\\n  --namespace custody-core \\\n  --set components.notary.namespace=custody-core \\\n  --set harmonize.vaults.*.namespace=custody-vaults \\\n  -f production.yaml\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"high-availability","__idx":5},"children":["High availability"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kubernetes-components","__idx":6},"children":["Kubernetes components"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Deploy multiple replicas of critical components. Note that the notary must run as a singleton (Merkle tree operations cannot be parallelized), while the vault supports multiple replicas for high availability:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"# production.yaml\nharmonize:\n  vaults:\n    \"00000000-0000-0000-0000-000000000000\":\n      enabled: true\n      replicas: 3  # Multiple vault replicas for HA\n\n      # Pod anti-affinity (spread across nodes)\n      affinity:\n        podAntiAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n            - labelSelector:\n                matchLabels:\n                  app: harmonize-vault\n              topologyKey: kubernetes.io/hostname\n\n      resources:\n        limits:\n          cpu: 2000m\n          memory: 512Mi\n        requests:\n          cpu: 500m\n          memory: 256Mi\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kms-high-availability-ha","__idx":7},"children":["KMS high availability (HA)"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"KMS Platform"},"children":["KMS Platform"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HA Strategy"},"children":["HA Strategy"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Thales Luna HSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HA Group with multiple HSMs, automatic failover"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["BlockSafe HSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HSM clustering across racks/locations"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Securosys Primus HSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HA Group with multiple HSMs, automatic failover"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["AWS CloudHSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-AZ cluster deployment"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["IBM HSM"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["GREP11 API with IBM HPVS, Crypto Express (CEX) adapter clustering for secure components only"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MPC"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Distributed nodes (3-of-4 threshold signing)"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Refer to your specific KMS integration guide for detailed HA configuration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"environment-topologies-prod-vs-dev","__idx":8},"children":["Environment topologies: PROD vs DEV"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use different HSM topologies for production and non-production environments to balance security with cost efficiency."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Production (HA cluster)","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Production"]}," environments require a full HA cluster with partition replication across multiple HSMs:"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart TB\n    subgraph prod[\"PROD Environment - HA Cluster\"]\n        subgraph apps[\"Client Applications\"]\n            direction LR\n            notary[\"Notary\"]\n            vault1[\"Vault Replica\"]\n            vault2[\"Vault Replica\"]\n        end\n\n        subgraph luna[\"Thales Luna HA Group\"]\n            direction LR\n            hsm1[\"HSM 1\"]\n            hsm2[\"HSM 2\"]\n            hsm3[\"HSM 3\"]\n\n            subgraph p1[\"Partition\"]\n                part1[\" \"]\n            end\n            subgraph p2[\"Partition\"]\n                part2[\" \"]\n            end\n            subgraph p3[\"Partition\"]\n                part3[\" \"]\n            end\n\n            hsm1 --- p1\n            hsm2 --- p2\n            hsm3 --- p3\n            p1 <-->|\"Replication\"| p2\n            p2 <-->|\"Replication\"| p3\n        end\n    end\n\n    notary --> luna\n    vault1 --> luna\n    vault2 --> luna\n","diagramHtml":"<svg id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1484.34375px;\" viewBox=\"0 0 1484.34375 517.5\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .error-icon{fill:#552222;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .error-text{fill:#552222;stroke:#552222;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-thickness-normal{stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-thickness-thick{stroke-width:3.5px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-pattern-solid{stroke-dasharray:0;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .marker{fill:#333333;stroke:#333333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .marker.cross{stroke:#333333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 p{margin:0;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster-label text{fill:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster-label span{color:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster-label span p{background-color:transparent;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .label text,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 span{fill:#333;color:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node rect,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node circle,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node ellipse,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node polygon,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .rough-node .label text,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node .label text,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .image-shape .label,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .icon-shape .label{text-anchor:middle;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .rough-node .label,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node .label,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .image-shape .label,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .icon-shape .label{text-align:center;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node.clickable{cursor:pointer;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .arrowheadPath{fill:#333333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .flowchart-link{stroke:#333333;fill:none;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster text{fill:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .cluster span{color:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 rect.text{fill:none;stroke-width:0;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .icon-shape,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .icon-shape p,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .icon-shape .label rect,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 .node .neo-node{stroke:#9370DB;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node rect,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].cluster rect,#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-prod\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"1468.34375\" height=\"501.5\"></rect><g class=\"cluster-label\" transform=\"translate(624.21875, 8)\"><foreignObject width=\"235.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>PROD Environment - HA Cluster</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M300.563,161.864L306.813,157.116C313.063,152.368,325.563,142.871,337.411,139.357C349.26,135.842,360.458,138.309,366.057,139.542L371.656,140.775\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_notary_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjE2MS44NjM5MjI1NTI1NDY4NX0seyJ4IjozMzguMDYyNSwieSI6MTMzLjM3NX0seyJ4IjozNzUuNTYyNSwieSI6MTQxLjYzNTgwOTg4MzMyMTg4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd)\"></path><path d=\"M300.563,258.75L306.813,258.75C313.063,258.75,325.563,258.75,337.396,258.75C349.229,258.75,360.396,258.75,365.979,258.75L371.563,258.75\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_vault1_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault1_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjI1OC43NX0seyJ4IjozMzguMDYyNSwieSI6MjU4Ljc1fSx7IngiOjM3NS41NjI1LCJ5IjoyNTguNzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd)\"></path><path d=\"M300.563,355.636L306.813,360.384C313.063,365.132,325.563,374.629,337.411,378.143C349.26,381.658,360.458,379.191,366.057,377.958L371.656,376.725\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_vault2_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault2_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjM1NS42MzYwNzc0NDc0NTMxNX0seyJ4IjozMzguMDYyNSwieSI6Mzg0LjEyNX0seyJ4IjozNzUuNTYyNSwieSI6Mzc1Ljg2NDE5MDExNjY3ODF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault1_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault2_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(367.5625, 35)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-luna\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"1063.28125\" height=\"431.5\"></rect><g class=\"cluster-label\" transform=\"translate(456.328125, 8)\"><foreignObject width=\"166.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Thales Luna HA Group</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M166.344,327L174.677,327C183.01,327,199.677,327,216.344,327C233.01,327,249.677,327,258.01,327L266.344,327\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_hsm1_p1_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm1_p1_0\" data-points=\"W3sieCI6MTY2LjM0Mzc1LCJ5IjozMjd9LHsieCI6MjE2LjM0Mzc1LCJ5IjozMjd9LHsieCI6MjY2LjM0Mzc1LCJ5IjozMjd9XQ==\" data-look=\"classic\"></path><path d=\"M385.516,172.5L402.526,172.5C419.536,172.5,453.557,172.5,485.773,180.018C517.99,187.537,548.401,202.574,563.607,210.092L578.813,217.611\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_hsm2_p2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm2_p2_0\" data-points=\"W3sieCI6Mzg1LjUxNTYyNSwieSI6MTcyLjV9LHsieCI6NDg3LjU3ODEyNSwieSI6MTcyLjV9LHsieCI6NTc4LjgxMjUsInkiOjIxNy42MTA3ODYwNzg2MDc4N31d\" data-look=\"classic\"></path><path d=\"M697.984,95.25L714.995,95.25C732.005,95.25,766.026,95.25,798.242,102.768C830.458,110.287,860.87,125.324,876.076,132.842L891.281,140.361\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_hsm3_p3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm3_p3_0\" data-points=\"W3sieCI6Njk3Ljk4NDM3NSwieSI6OTUuMjV9LHsieCI6ODAwLjA0Njg3NSwieSI6OTUuMjV9LHsieCI6ODkxLjI4MTI1LCJ5IjoxNDAuMzYwNzg2MDc4NjA3ODd9XQ==\" data-look=\"classic\"></path><path d=\"M400.344,327L414.883,327C429.422,327,458.5,327,487.647,319.777C516.794,312.554,546.011,298.108,560.619,290.885L575.227,283.662\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_p1_p2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_p1_p2_0\" data-points=\"W3sieCI6Mzk2LjM0Mzc1LCJ5IjozMjd9LHsieCI6NDg3LjU3ODEyNSwieSI6MzI3fSx7IngiOjU3OC44MTI1LCJ5IjoyODEuODg5MjEzOTIxMzkyMX1d\" data-look=\"classic\" marker-start=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd)\"></path><path d=\"M712.813,249.75L727.352,249.75C741.891,249.75,770.969,249.75,800.116,242.527C829.263,235.304,858.479,220.858,873.087,213.635L887.696,206.412\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-L_p2_p3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_p2_p3_0\" data-points=\"W3sieCI6NzA4LjgxMjUsInkiOjI0OS43NX0seyJ4Ijo4MDAuMDQ2ODc1LCJ5IjoyNDkuNzV9LHsieCI6ODkxLjI4MTI1LCJ5IjoyMDQuNjM5MjEzOTIxMzkyMTN9XQ==\" data-look=\"classic\" marker-start=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm1_p1_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm2_p2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm3_p3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(487.578125, 327)\"><g class=\"label\" data-id=\"L_p1_p2_0\" transform=\"translate(-41.234375, -12)\"><foreignObject width=\"82.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Replication</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(800.046875, 249.75)\"><g class=\"label\" data-id=\"L_p2_p3_0\" transform=\"translate(-41.234375, -12)\"><foreignObject width=\"82.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Replication</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(883.28125, 87)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-p3\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-part3-8\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-hsm1-3\" data-look=\"classic\" transform=\"translate(112.171875, 327)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 1</p></span></div></foreignObject></g></g><g class=\"root\" transform=\"translate(258.34375, 241.5)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-p1\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-part1-6\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-hsm2-4\" data-look=\"classic\" transform=\"translate(331.34375, 172.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 2</p></span></div></foreignObject></g></g><g class=\"root\" transform=\"translate(570.8125, 164.25)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-p2\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-part2-7\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-hsm3-5\" data-look=\"classic\" transform=\"translate(643.8125, 95.25)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 3</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(37.5, 84.75)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-apps\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"255.0625\" height=\"332\"></rect><g class=\"cluster-label\" transform=\"translate(66.5546875, 8)\"><foreignObject width=\"137.953125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Client Applications</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-notary-0\" data-look=\"classic\" transform=\"translate(135.53125, 70)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-vault1-1\" data-look=\"classic\" transform=\"translate(135.53125, 174)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-27\" width=\"155.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -12)\"><rect></rect><foreignObject width=\"95.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault Replica</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-flowchart-vault2-2\" data-look=\"classic\" transform=\"translate(135.53125, 278)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-27\" width=\"155.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -12)\"><rect></rect><foreignObject width=\"95.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault Replica</p></span></div></foreignObject></g></g></g></g></g></g></g></g></g><defs><filter id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-5d5911db44c3c6efe98c89fa837d6a8a55d4471ec21f5eae9b896ccc65353957-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1484.34375px;\" viewBox=\"0 0 1484.34375 517.5\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .error-icon{fill:#a44141;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .error-text{fill:#ddd;stroke:#ddd;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-thickness-normal{stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-thickness-thick{stroke-width:3.5px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-pattern-solid{stroke-dasharray:0;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-pattern-dashed{stroke-dasharray:3;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edge-pattern-dotted{stroke-dasharray:2;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .marker{fill:lightgrey;stroke:lightgrey;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .marker.cross{stroke:lightgrey;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f p{margin:0;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster-label text{fill:#F9FFFE;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster-label span{color:#F9FFFE;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster-label span p{background-color:transparent;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .label text,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f span{fill:#ccc;color:#ccc;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node rect,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node circle,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node ellipse,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node polygon,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .rough-node .label text,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node .label text,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .image-shape .label,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .icon-shape .label{text-anchor:middle;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .rough-node .label,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node .label,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .image-shape .label,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .icon-shape .label{text-align:center;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node.clickable{cursor:pointer;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .arrowheadPath{fill:lightgrey;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .flowchart-link{stroke:lightgrey;fill:none;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster text{fill:#F9FFFE;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .cluster span{color:#F9FFFE;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f rect.text{fill:none;stroke-width:0;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .icon-shape,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .icon-shape p,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .icon-shape .label rect,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f .node .neo-node{stroke:#ccc;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node rect,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].cluster rect,#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node polygon{stroke:url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node path{stroke:url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient);stroke-width:1px;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node circle{stroke:url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-prod\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"1468.34375\" height=\"501.5\"></rect><g class=\"cluster-label\" transform=\"translate(624.21875, 8)\"><foreignObject width=\"235.90625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>PROD Environment - HA Cluster</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M300.563,161.864L306.813,157.116C313.063,152.368,325.563,142.871,337.411,139.357C349.26,135.842,360.458,138.309,366.057,139.542L371.656,140.775\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_notary_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjE2MS44NjM5MjI1NTI1NDY4NX0seyJ4IjozMzguMDYyNSwieSI6MTMzLjM3NX0seyJ4IjozNzUuNTYyNSwieSI6MTQxLjYzNTgwOTg4MzMyMTg4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd)\"></path><path d=\"M300.563,258.75L306.813,258.75C313.063,258.75,325.563,258.75,337.396,258.75C349.229,258.75,360.396,258.75,365.979,258.75L371.563,258.75\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_vault1_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault1_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjI1OC43NX0seyJ4IjozMzguMDYyNSwieSI6MjU4Ljc1fSx7IngiOjM3NS41NjI1LCJ5IjoyNTguNzV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd)\"></path><path d=\"M300.563,355.636L306.813,360.384C313.063,365.132,325.563,374.629,337.411,378.143C349.26,381.658,360.458,379.191,366.057,377.958L371.656,376.725\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_vault2_luna_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault2_luna_0\" data-points=\"W3sieCI6MzAwLjU2MjUsInkiOjM1NS42MzYwNzc0NDc0NTMxNX0seyJ4IjozMzguMDYyNSwieSI6Mzg0LjEyNX0seyJ4IjozNzUuNTYyNSwieSI6Mzc1Ljg2NDE5MDExNjY3ODF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault1_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault2_luna_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(367.5625, 35)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-luna\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"1063.28125\" height=\"431.5\"></rect><g class=\"cluster-label\" transform=\"translate(456.328125, 8)\"><foreignObject width=\"166.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Thales Luna HA Group</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M166.344,327L174.677,327C183.01,327,199.677,327,216.344,327C233.01,327,249.677,327,258.01,327L266.344,327\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_hsm1_p1_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm1_p1_0\" data-points=\"W3sieCI6MTY2LjM0Mzc1LCJ5IjozMjd9LHsieCI6MjE2LjM0Mzc1LCJ5IjozMjd9LHsieCI6MjY2LjM0Mzc1LCJ5IjozMjd9XQ==\" data-look=\"classic\"></path><path d=\"M385.516,172.5L402.526,172.5C419.536,172.5,453.557,172.5,485.773,180.018C517.99,187.537,548.401,202.574,563.607,210.092L578.813,217.611\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_hsm2_p2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm2_p2_0\" data-points=\"W3sieCI6Mzg1LjUxNTYyNSwieSI6MTcyLjV9LHsieCI6NDg3LjU3ODEyNSwieSI6MTcyLjV9LHsieCI6NTc4LjgxMjUsInkiOjIxNy42MTA3ODYwNzg2MDc4N31d\" data-look=\"classic\"></path><path d=\"M697.984,95.25L714.995,95.25C732.005,95.25,766.026,95.25,798.242,102.768C830.458,110.287,860.87,125.324,876.076,132.842L891.281,140.361\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_hsm3_p3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_hsm3_p3_0\" data-points=\"W3sieCI6Njk3Ljk4NDM3NSwieSI6OTUuMjV9LHsieCI6ODAwLjA0Njg3NSwieSI6OTUuMjV9LHsieCI6ODkxLjI4MTI1LCJ5IjoxNDAuMzYwNzg2MDc4NjA3ODd9XQ==\" data-look=\"classic\"></path><path d=\"M400.344,327L414.883,327C429.422,327,458.5,327,487.647,319.777C516.794,312.554,546.011,298.108,560.619,290.885L575.227,283.662\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_p1_p2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_p1_p2_0\" data-points=\"W3sieCI6Mzk2LjM0Mzc1LCJ5IjozMjd9LHsieCI6NDg3LjU3ODEyNSwieSI6MzI3fSx7IngiOjU3OC44MTI1LCJ5IjoyODEuODg5MjEzOTIxMzkyMX1d\" data-look=\"classic\" marker-start=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd)\"></path><path d=\"M712.813,249.75L727.352,249.75C741.891,249.75,770.969,249.75,800.116,242.527C829.263,235.304,858.479,220.858,873.087,213.635L887.696,206.412\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-L_p2_p3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_p2_p3_0\" data-points=\"W3sieCI6NzA4LjgxMjUsInkiOjI0OS43NX0seyJ4Ijo4MDAuMDQ2ODc1LCJ5IjoyNDkuNzV9LHsieCI6ODkxLjI4MTI1LCJ5IjoyMDQuNjM5MjEzOTIxMzkyMTN9XQ==\" data-look=\"classic\" marker-start=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointStart)\" marker-end=\"url(#diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm1_p1_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm2_p2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_hsm3_p3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(487.578125, 327)\"><g class=\"label\" data-id=\"L_p1_p2_0\" transform=\"translate(-41.234375, -12)\"><foreignObject width=\"82.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Replication</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(800.046875, 249.75)\"><g class=\"label\" data-id=\"L_p2_p3_0\" transform=\"translate(-41.234375, -12)\"><foreignObject width=\"82.46875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"><p>Replication</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(883.28125, 87)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-p3\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-part3-8\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-hsm1-3\" data-look=\"classic\" transform=\"translate(112.171875, 327)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 1</p></span></div></foreignObject></g></g><g class=\"root\" transform=\"translate(258.34375, 241.5)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-p1\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-part1-6\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-hsm2-4\" data-look=\"classic\" transform=\"translate(331.34375, 172.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 2</p></span></div></foreignObject></g></g><g class=\"root\" transform=\"translate(570.8125, 164.25)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-p2\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"130\" height=\"155\"></rect><g class=\"cluster-label\" transform=\"translate(41.03125, 8)\"><foreignObject width=\"63.9375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Partition</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-part2-7\" data-look=\"classic\" transform=\"translate(73, 85.5)\"><rect class=\"basic label-container\" style=\"\" x=\"-30\" y=\"-15\" width=\"60\" height=\"30\"></rect><g class=\"label\" style=\"\" transform=\"translate(0, 0)\"><rect></rect><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"></span></div></foreignObject></g></g></g></g><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-hsm3-5\" data-look=\"classic\" transform=\"translate(643.8125, 95.25)\"><rect class=\"basic label-container\" style=\"\" x=\"-54.171875\" y=\"-27\" width=\"108.34375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-24.171875, -12)\"><rect></rect><foreignObject width=\"48.34375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>HSM 3</p></span></div></foreignObject></g></g></g></g><g class=\"root\" transform=\"translate(37.5, 84.75)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-apps\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"255.0625\" height=\"332\"></rect><g class=\"cluster-label\" transform=\"translate(66.5546875, 8)\"><foreignObject width=\"137.953125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Client Applications</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-notary-0\" data-look=\"classic\" transform=\"translate(135.53125, 70)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-vault1-1\" data-look=\"classic\" transform=\"translate(135.53125, 174)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-27\" width=\"155.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -12)\"><rect></rect><foreignObject width=\"95.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault Replica</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-flowchart-vault2-2\" data-look=\"classic\" transform=\"translate(135.53125, 278)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-27\" width=\"155.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -12)\"><rect></rect><foreignObject width=\"95.0625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault Replica</p></span></div></foreignObject></g></g></g></g></g></g></g></g></g><defs><filter id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-8afa0b6281a9cf4c788e0cca880c1605c96de0009f316d793571db3a3b732c4f-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart TB\n    subgraph prod[\"PROD Environment - HA Cluster\"]\n        subgraph apps[\"Client Applications\"]\n            direction LR\n            notary[\"Notary\"]\n            vault1[\"Vault Replica\"]\n            vault2[\"Vault Replica\"]\n        end\n\n        subgraph luna[\"Thales Luna HA Group\"]\n            direction LR\n            hsm1[\"HSM 1\"]\n            hsm2[\"HSM 2\"]\n            hsm3[\"HSM 3\"]\n\n            subgraph p1[\"Partition\"]\n                part1[\" \"]\n            end\n            subgraph p2[\"Partition\"]\n                part2[\" \"]\n            end\n            subgraph p3[\"Partition\"]\n                part3[\" \"]\n            end\n\n            hsm1 --- p1\n            hsm2 --- p2\n            hsm3 --- p3\n            p1 <-->|\"Replication\"| p2\n            p2 <-->|\"Replication\"| p3\n        end\n    end\n\n    notary --> luna\n    vault1 --> luna\n    vault2 --> luna\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key points:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["3+ HSMs in an HA group for redundancy"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Partition replication across all HSMs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Multiple vault replicas for signing capacity"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Automatic failover if any HSM becomes unavailable"]}]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"DEV/UAT (single HSM)","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Non-production"]}," environments can use a single HSM with multiple partitions to reduce costs:"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart TB\n    subgraph dev[\"DEV Environment - Single HSM\"]\n        subgraph apps1[\"DEV Applications\"]\n            notary1[\"Notary\"]\n            vault1[\"Vault\"]\n        end\n\n        subgraph apps2[\"UAT Applications\"]\n            notary2[\"Notary\"]\n            vault2[\"Vault\"]\n        end\n\n        subgraph luna[\"Thales Luna HSM\"]\n            partDev[\"Partition: DEV\"]\n            partUat[\"Partition: UAT\"]\n        end\n    end\n\n    notary1 --> partDev\n    vault1 --> partDev\n    notary2 --> partUat\n    vault2 --> partUat\n","diagramHtml":"<svg id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 589.3125px;\" viewBox=\"0 0 589.3125 532\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .error-icon{fill:#552222;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .error-text{fill:#552222;stroke:#552222;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-thickness-normal{stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-thickness-thick{stroke-width:3.5px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-pattern-solid{stroke-dasharray:0;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-pattern-dashed{stroke-dasharray:3;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edge-pattern-dotted{stroke-dasharray:2;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .marker{fill:#333333;stroke:#333333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .marker.cross{stroke:#333333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f p{margin:0;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster-label text{fill:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster-label span{color:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster-label span p{background-color:transparent;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .label text,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f span{fill:#333;color:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node rect,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node circle,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node ellipse,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node polygon,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .rough-node .label text,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node .label text,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .image-shape .label,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .icon-shape .label{text-anchor:middle;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .rough-node .label,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node .label,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .image-shape .label,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .icon-shape .label{text-align:center;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node.clickable{cursor:pointer;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .arrowheadPath{fill:#333333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .flowchart-link{stroke:#333333;fill:none;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster text{fill:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .cluster span{color:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f rect.text{fill:none;stroke-width:0;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .icon-shape,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .icon-shape p,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .icon-shape .label rect,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f .node .neo-node{stroke:#9370DB;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node rect,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].cluster rect,#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-dev\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"573.3125\" height=\"516\"></rect><g class=\"cluster-label\" transform=\"translate(181.0859375, 8)\"><foreignObject width=\"227.140625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>DEV Environment - Single HSM</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-luna\" data-look=\"classic\"><rect style=\"\" x=\"306.375\" y=\"39\" width=\"237.4375\" height=\"444\"></rect><g class=\"cluster-label\" transform=\"translate(360.8828125, 39)\"><foreignObject width=\"128.421875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Thales Luna HSM</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-apps2\" data-look=\"classic\"><rect style=\"\" x=\"45.5\" y=\"276\" width=\"185.875\" height=\"228\"></rect><g class=\"cluster-label\" transform=\"translate(76.1015625, 276)\"><foreignObject width=\"124.671875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>UAT Applications</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-apps1\" data-look=\"classic\"><rect style=\"\" x=\"45.5\" y=\"28\" width=\"185.875\" height=\"228\"></rect><g class=\"cluster-label\" transform=\"translate(75.734375, 28)\"><foreignObject width=\"125.40625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>DEV Applications</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M193.875,90L200.125,90C206.375,90,218.875,90,231.375,90C243.875,90,256.375,90,268.875,90C281.375,90,293.875,90,309.027,93.899C324.179,97.798,341.983,105.597,350.885,109.496L359.787,113.395\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-L_notary1_partDev_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary1_partDev_0\" data-points=\"W3sieCI6MTkzLjg3NSwieSI6OTB9LHsieCI6MjMxLjM3NSwieSI6OTB9LHsieCI6MjY4Ljg3NSwieSI6OTB9LHsieCI6MzA2LjM3NSwieSI6OTB9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5IjoxMTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd)\"></path><path d=\"M187.25,194L194.604,194C201.958,194,216.667,194,230.271,194C243.875,194,256.375,194,268.875,194C281.375,194,293.875,194,309.027,190.101C324.179,186.202,341.983,178.403,350.885,174.504L359.787,170.605\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-L_vault1_partDev_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault1_partDev_0\" data-points=\"W3sieCI6MTg3LjI1LCJ5IjoxOTR9LHsieCI6MjMxLjM3NSwieSI6MTk0fSx7IngiOjI2OC44NzUsInkiOjE5NH0seyJ4IjozMDYuMzc1LCJ5IjoxOTR9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5IjoxNjl9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd)\"></path><path d=\"M193.875,338L200.125,338C206.375,338,218.875,338,231.375,338C243.875,338,256.375,338,268.875,338C281.375,338,293.875,338,309.027,341.899C324.179,345.798,341.983,353.597,350.885,357.496L359.787,361.395\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-L_notary2_partUat_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary2_partUat_0\" data-points=\"W3sieCI6MTkzLjg3NSwieSI6MzM4fSx7IngiOjIzMS4zNzUsInkiOjMzOH0seyJ4IjoyNjguODc1LCJ5IjozMzh9LHsieCI6MzA2LjM3NSwieSI6MzM4fSx7IngiOjM2My40NTEzMjIxMTUzODQ2NCwieSI6MzYzfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd)\"></path><path d=\"M187.25,442L194.604,442C201.958,442,216.667,442,230.271,442C243.875,442,256.375,442,268.875,442C281.375,442,293.875,442,309.027,438.101C324.179,434.202,341.983,426.403,350.885,422.504L359.787,418.605\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-L_vault2_partUat_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault2_partUat_0\" data-points=\"W3sieCI6MTg3LjI1LCJ5Ijo0NDJ9LHsieCI6MjMxLjM3NSwieSI6NDQyfSx7IngiOjI2OC44NzUsInkiOjQ0Mn0seyJ4IjozMDYuMzc1LCJ5Ijo0NDJ9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5Ijo0MTd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary1_partDev_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault1_partDev_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary2_partUat_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault2_partUat_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-partDev-4\" data-look=\"classic\" transform=\"translate(425.09375, 142)\"><rect class=\"basic label-container\" style=\"\" x=\"-81.21875\" y=\"-27\" width=\"162.4375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-51.21875, -12)\"><rect></rect><foreignObject width=\"102.4375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Partition: DEV</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-notary1-0\" data-look=\"classic\" transform=\"translate(138.4375, 90)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-vault1-1\" data-look=\"classic\" transform=\"translate(138.4375, 194)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.8125\" y=\"-27\" width=\"97.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.8125, -12)\"><rect></rect><foreignObject width=\"37.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-notary2-2\" data-look=\"classic\" transform=\"translate(138.4375, 338)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-partUat-5\" data-look=\"classic\" transform=\"translate(425.09375, 390)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.8515625\" y=\"-27\" width=\"161.703125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.8515625, -12)\"><rect></rect><foreignObject width=\"101.703125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Partition: UAT</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-flowchart-vault2-3\" data-look=\"classic\" transform=\"translate(138.4375, 442)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.8125\" y=\"-27\" width=\"97.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.8125, -12)\"><rect></rect><foreignObject width=\"37.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-d46c366016110f864bff8d3b31163ed27f91988bf525221967748865aab38d0f-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 589.3125px;\" viewBox=\"0 0 589.3125 532\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .error-icon{fill:#a44141;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .error-text{fill:#ddd;stroke:#ddd;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-thickness-normal{stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-thickness-thick{stroke-width:3.5px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-pattern-solid{stroke-dasharray:0;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-pattern-dashed{stroke-dasharray:3;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edge-pattern-dotted{stroke-dasharray:2;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .marker{fill:lightgrey;stroke:lightgrey;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .marker.cross{stroke:lightgrey;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c p{margin:0;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster-label text{fill:#F9FFFE;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster-label span{color:#F9FFFE;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster-label span p{background-color:transparent;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .label text,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c span{fill:#ccc;color:#ccc;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node rect,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node circle,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node ellipse,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node polygon,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .rough-node .label text,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node .label text,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .image-shape .label,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .icon-shape .label{text-anchor:middle;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .rough-node .label,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node .label,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .image-shape .label,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .icon-shape .label{text-align:center;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node.clickable{cursor:pointer;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .arrowheadPath{fill:lightgrey;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .flowchart-link{stroke:lightgrey;fill:none;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster text{fill:#F9FFFE;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .cluster span{color:#F9FFFE;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c rect.text{fill:none;stroke-width:0;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .icon-shape,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .icon-shape p,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .icon-shape .label rect,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c .node .neo-node{stroke:#ccc;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node rect,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].cluster rect,#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node polygon{stroke:url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node path{stroke:url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient);stroke-width:1px;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node circle{stroke:url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"></g><g class=\"edgePaths\"></g><g class=\"edgeLabels\"></g><g class=\"nodes\"><g class=\"root\" transform=\"translate(0, 0)\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-dev\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"573.3125\" height=\"516\"></rect><g class=\"cluster-label\" transform=\"translate(181.0859375, 8)\"><foreignObject width=\"227.140625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>DEV Environment - Single HSM</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-luna\" data-look=\"classic\"><rect style=\"\" x=\"306.375\" y=\"39\" width=\"237.4375\" height=\"444\"></rect><g class=\"cluster-label\" transform=\"translate(360.8828125, 39)\"><foreignObject width=\"128.421875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Thales Luna HSM</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-apps2\" data-look=\"classic\"><rect style=\"\" x=\"45.5\" y=\"276\" width=\"185.875\" height=\"228\"></rect><g class=\"cluster-label\" transform=\"translate(76.1015625, 276)\"><foreignObject width=\"124.671875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>UAT Applications</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-apps1\" data-look=\"classic\"><rect style=\"\" x=\"45.5\" y=\"28\" width=\"185.875\" height=\"228\"></rect><g class=\"cluster-label\" transform=\"translate(75.734375, 28)\"><foreignObject width=\"125.40625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>DEV Applications</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M193.875,90L200.125,90C206.375,90,218.875,90,231.375,90C243.875,90,256.375,90,268.875,90C281.375,90,293.875,90,309.027,93.899C324.179,97.798,341.983,105.597,350.885,109.496L359.787,113.395\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-L_notary1_partDev_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary1_partDev_0\" data-points=\"W3sieCI6MTkzLjg3NSwieSI6OTB9LHsieCI6MjMxLjM3NSwieSI6OTB9LHsieCI6MjY4Ljg3NSwieSI6OTB9LHsieCI6MzA2LjM3NSwieSI6OTB9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5IjoxMTV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd)\"></path><path d=\"M187.25,194L194.604,194C201.958,194,216.667,194,230.271,194C243.875,194,256.375,194,268.875,194C281.375,194,293.875,194,309.027,190.101C324.179,186.202,341.983,178.403,350.885,174.504L359.787,170.605\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-L_vault1_partDev_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault1_partDev_0\" data-points=\"W3sieCI6MTg3LjI1LCJ5IjoxOTR9LHsieCI6MjMxLjM3NSwieSI6MTk0fSx7IngiOjI2OC44NzUsInkiOjE5NH0seyJ4IjozMDYuMzc1LCJ5IjoxOTR9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5IjoxNjl9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd)\"></path><path d=\"M193.875,338L200.125,338C206.375,338,218.875,338,231.375,338C243.875,338,256.375,338,268.875,338C281.375,338,293.875,338,309.027,341.899C324.179,345.798,341.983,353.597,350.885,357.496L359.787,361.395\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-L_notary2_partUat_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_notary2_partUat_0\" data-points=\"W3sieCI6MTkzLjg3NSwieSI6MzM4fSx7IngiOjIzMS4zNzUsInkiOjMzOH0seyJ4IjoyNjguODc1LCJ5IjozMzh9LHsieCI6MzA2LjM3NSwieSI6MzM4fSx7IngiOjM2My40NTEzMjIxMTUzODQ2NCwieSI6MzYzfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd)\"></path><path d=\"M187.25,442L194.604,442C201.958,442,216.667,442,230.271,442C243.875,442,256.375,442,268.875,442C281.375,442,293.875,442,309.027,438.101C324.179,434.202,341.983,426.403,350.885,422.504L359.787,418.605\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-L_vault2_partUat_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_vault2_partUat_0\" data-points=\"W3sieCI6MTg3LjI1LCJ5Ijo0NDJ9LHsieCI6MjMxLjM3NSwieSI6NDQyfSx7IngiOjI2OC44NzUsInkiOjQ0Mn0seyJ4IjozMDYuMzc1LCJ5Ijo0NDJ9LHsieCI6MzYzLjQ1MTMyMjExNTM4NDY0LCJ5Ijo0MTd9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary1_partDev_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault1_partDev_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_notary2_partUat_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_vault2_partUat_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-partDev-4\" data-look=\"classic\" transform=\"translate(425.09375, 142)\"><rect class=\"basic label-container\" style=\"\" x=\"-81.21875\" y=\"-27\" width=\"162.4375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-51.21875, -12)\"><rect></rect><foreignObject width=\"102.4375\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Partition: DEV</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-notary1-0\" data-look=\"classic\" transform=\"translate(138.4375, 90)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-vault1-1\" data-look=\"classic\" transform=\"translate(138.4375, 194)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.8125\" y=\"-27\" width=\"97.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.8125, -12)\"><rect></rect><foreignObject width=\"37.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-notary2-2\" data-look=\"classic\" transform=\"translate(138.4375, 338)\"><rect class=\"basic label-container\" style=\"\" x=\"-55.4375\" y=\"-27\" width=\"110.875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-25.4375, -12)\"><rect></rect><foreignObject width=\"50.875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Notary</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-partUat-5\" data-look=\"classic\" transform=\"translate(425.09375, 390)\"><rect class=\"basic label-container\" style=\"\" x=\"-80.8515625\" y=\"-27\" width=\"161.703125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-50.8515625, -12)\"><rect></rect><foreignObject width=\"101.703125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Partition: UAT</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-flowchart-vault2-3\" data-look=\"classic\" transform=\"translate(138.4375, 442)\"><rect class=\"basic label-container\" style=\"\" x=\"-48.8125\" y=\"-27\" width=\"97.625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-18.8125, -12)\"><rect></rect><foreignObject width=\"37.625\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Vault</p></span></div></foreignObject></g></g></g></g></g></g></g><defs><filter id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-5990a58f4395219eee0124996b87722df68ca2f41a9bac34bf5ff1f415c7599c-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart TB\n    subgraph dev[\"DEV Environment - Single HSM\"]\n        subgraph apps1[\"DEV Applications\"]\n            notary1[\"Notary\"]\n            vault1[\"Vault\"]\n        end\n\n        subgraph apps2[\"UAT Applications\"]\n            notary2[\"Notary\"]\n            vault2[\"Vault\"]\n        end\n\n        subgraph luna[\"Thales Luna HSM\"]\n            partDev[\"Partition: DEV\"]\n            partUat[\"Partition: UAT\"]\n        end\n    end\n\n    notary1 --> partDev\n    vault1 --> partDev\n    notary2 --> partUat\n    vault2 --> partUat\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key points:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Single HSM with separate partitions per environment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["DEV and UAT isolated via partition boundaries"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Cost-effective for non-production workloads"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["No HA - acceptable for development/testing"]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"monitoring-and-alerting","__idx":9},"children":["Monitoring and alerting"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"key-metrics","__idx":10},"children":["Key metrics"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Category"},"children":["Category"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Metrics to Monitor"},"children":["Metrics to Monitor"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["KMS/HSM Health"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Connection status, latency, error rate"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Signing Operations"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Requests/second, success rate, latency"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pod Health"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["CPU, memory, restarts, readiness"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Application"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Transaction throughput, queue depth"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prometheus-servicemonitor","__idx":11},"children":["Prometheus ServiceMonitor"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"yaml","header":{"controls":{"copy":{}}},"source":"apiVersion: monitoring.coreos.com/v1\nkind: ServiceMonitor\nmetadata:\n  name: harmonize-notary\n  namespace: custody-monitoring\nspec:\n  selector:\n    matchLabels:\n      app: harmonize-notary\n  namespaceSelector:\n    matchNames:\n      - custody-core\n  endpoints:\n  - port: metrics\n    interval: 30s\n    path: /metrics\n","lang":"yaml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recommended-alerts","__idx":12},"children":["Recommended alerts"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Alert"},"children":["Alert"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Condition"},"children":["Condition"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Severity"},"children":["Severity"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["KMSConnectionFailed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["HSM/KMS connection down > 1 min"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Critical"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SigningLatencyHigh"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["p99 latency > 500ms for 5 min"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Warning"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NotaryPodDown"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notary pod unavailable > 1 min"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Critical"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VaultReplicasLow"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault replicas < 2"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Warning"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HighErrorRate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error rate > 1% for 5 min"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Warning"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"certificate-rotation","__idx":13},"children":["Certificate rotation"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For mTLS-enabled deployments (Luna, BlockSafe):"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"rotation-procedure","__idx":14},"children":["Rotation procedure"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate new certificates"]}," using your HSM vendor tools"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create new Kubernetes secret"]}," with updated certificates"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Perform rolling update"]}," via Helm to pick up new credentials"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verify connectivity"]}," to HSM with new certificates"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Revoke old certificates"]}," after confirming new ones work"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Zero-Downtime Rotation"]},": With multiple vault replicas, rolling updates ensure continuous availability during certificate rotation. Note that the notary runs as a singleton, so plan a brief maintenance window for notary certificate rotation."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"backup-and-disaster-recovery","__idx":15},"children":["Backup and disaster recovery"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-to-backup","__idx":16},"children":["What to backup"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Component"},"children":["Component"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Backup Method"},"children":["Backup Method"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Frequency"},"children":["Frequency"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HSM Keys"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vendor-specific backup (Luna: partition backup, AWS CloudHSM: cluster backup)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Daily"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Kubernetes Secrets"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Encrypted backup to secure storage"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Daily"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Helm Values"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Version control (Git)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["On change"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Configuration"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Infrastructure as Code (Terraform/CDK)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["On change"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"recovery-testing","__idx":17},"children":["Recovery testing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Perform quarterly disaster recovery testing:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HSM Recovery"]},": Restore keys to test partition/cluster"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Kubernetes recovery"]},": Redeploy from IaC to test cluster."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["End-to-End Test"]},": Verify signing operations work after recovery"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Document results"]},": Update runbooks based on findings."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-guides","__idx":18},"children":["Related guides"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/overview"},"children":["KMS integration overview"]}," - All supported KMS platforms"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/advanced-secret-management"},"children":["Advanced secret management"]}," - ESO, Vault Agent, AWS Secrets Manager"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/governance/domains/inject-a-domain"},"children":["Domain injection"]}," - Advanced key isolation patterns"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/on-premise-hsm/thales-luna"},"children":["Thales Luna HSM"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/on-premise-hsm/blocksafe"},"children":["BlockSafe HSM"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/cloud-hsm/aws-cloudhsm"},"children":["AWS CloudHSM"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/on-premise-hsm/ibm-linuxone"},"children":["IBM LinuxONE"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/mpc/overview"},"children":["MPC overview"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/mpc/backups"},"children":["MPC backups"]}]}]}]},"headings":[{"value":"Production best practices","id":"production-best-practices","depth":1},{"value":"Namespace segmentation","id":"namespace-segmentation","depth":2},{"value":"Recommended namespace structure","id":"recommended-namespace-structure","depth":3},{"value":"Benefits","id":"benefits","depth":3},{"value":"Implementation","id":"implementation","depth":3},{"value":"High availability","id":"high-availability","depth":2},{"value":"Kubernetes components","id":"kubernetes-components","depth":3},{"value":"KMS high availability (HA)","id":"kms-high-availability-ha","depth":3},{"value":"Environment topologies: PROD vs DEV","id":"environment-topologies-prod-vs-dev","depth":3},{"value":"Monitoring and alerting","id":"monitoring-and-alerting","depth":2},{"value":"Key metrics","id":"key-metrics","depth":3},{"value":"Prometheus ServiceMonitor","id":"prometheus-servicemonitor","depth":3},{"value":"Recommended alerts","id":"recommended-alerts","depth":3},{"value":"Certificate rotation","id":"certificate-rotation","depth":2},{"value":"Rotation procedure","id":"rotation-procedure","depth":3},{"value":"Backup and disaster recovery","id":"backup-and-disaster-recovery","depth":2},{"value":"What to backup","id":"what-to-backup","depth":3},{"value":"Recovery testing","id":"recovery-testing","depth":3},{"value":"Related guides","id":"related-guides","depth":2}],"frontmatter":{"seo":{"title":"Production best practices"}},"lastModified":"2026-08-05T09:55:07.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/deployment/integrate-kms/production-best-practices","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}