{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/deployment/planning/resilience","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/deployment/planning/resilience","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/planning/resilience","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/deployment/planning/resilience","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/deployment/planning/resilience","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/deployment/planning/resilience","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/deployment/planning/resilience","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Resilience planning","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":"resilience-planning","__idx":0},"children":["Resilience planning"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page defines the high availability (HA) and disaster recovery (DR) requirements for ","Ripple Custody"," components and outlines your implementation responsibilities."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Platform resilience depends on both Ripple's application design and your infrastructure implementation. All core platform components are containerized and deployed into your Kubernetes/OpenShift environment, relying on the container orchestration platform for scaling and resilience."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"core-concepts","__idx":1},"children":["Core concepts"]},{"$$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":"Concept"},"children":["Concept"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Definition"},"children":["Definition"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["High availability (HA)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Automated, real-time protection against single-component failures (pod crash, server reboot) using redundancy."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Disaster recovery (DR)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manual, procedural recovery from catastrophic failures (data center loss, core component failure) using backups."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For conceptual background, see:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security-model"},"children":["Security"]}," - Zero-trust model and component isolation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/overview/security/data-integrity-and-audit-trail"},"children":["Data integrity"]}," - Merkle tree and anti-rewind file (ARF) protection."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"component-categories","__idx":2},"children":["Component categories"]},{"$$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":"Definition"},"children":["Definition"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client-provided"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You deploy and manage your own instance(s) using your vendor of choice."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client-deployed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ripple provides the binary; you deploy following best practices for production support."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client-managed"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You are fully responsible for the component's lifecycle, HA, and DR."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Core dependency"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required for a functional ","Ripple Custody"," cluster."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Secure component"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Core dependency requiring encryption of data in-flight, at-rest, and in-use (e.g., enclave technology)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Recommended"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not required but highly recommended based on typical deployments."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Optional"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not required; enable if the specific functionality is needed."]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"component-summary","__idx":3},"children":["Component summary"]},{"$$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":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Category"},"children":["Category"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Instances"},"children":["Instances"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"State"},"children":["State"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HA"},"children":["HA"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"DR"},"children":["DR"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["PostgreSQL Database"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Primary data store holding policies, accounts, ledger states, and wrapped key material. HSM-wrapped keys are stored here."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-provided"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3-node cluster"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#postgresql-database"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#postgresql-database"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["AMQP Message Broker"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Asynchronous messaging, queuing API requests, and distributing events. Typically RabbitMQ."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-provided"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3-node cluster"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#amqp-message-broker"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#amqp-message-broker"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notary"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Evaluates governance policies, validates trusted state with the Merkle tree and ARF, and signs trusted-state attestations."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed (secure)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 (Singleton)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#notary"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#notary"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notary Bridge"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Proxy between workflow services and Notary; moves approval and attestation messages across the protected boundary."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 (Singleton)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Singleton"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verifies notary-attested operation queries, builds ledger-specific transactions, performs protected signing through your KMS, and returns signed transactions to the platform for broadcast. Deploy via Helm, Nitro Enclaves, HPVS, GCP, Azure, or Red Hat Linux."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed (secure)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#vault"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#vault"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Vault Bridge"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Web UI for fully air-gapped signing. Provides an interface to drag-and-drop transaction files for signing and outputs signed transactions."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 per vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Runs with vault"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API Gateway"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Single entry point for all API requests; validates JWTs, routes traffic. Public API for clients, signed internal API for components. HTTP only."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["GraphQL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Data layer for Web UI v2; provides GraphQL API for improved query performance. Same role as API Gateway for v2 clients."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ledger Accounting"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manages system accounting, balances, transactions, and compliance processes (e.g., quarantine management)."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 (Singleton)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Singleton"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Indexers (Legacy & UIS)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Chain-specific services monitoring blockchain nodes; fetch blocks, parse data, identify relevant transactions. UIS (v1.26+) uses component-based architecture with bulkhead pattern."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 per ledger"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful (DB)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Singleton"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Event Processing"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Consumes AMQP messages; processes events and async tasks (e.g., updating transaction state after indexing). May require singleton configuration depending on queue setup to avoid duplicate processing."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-2 replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#event-processing"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authentication Server"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Legacy authentication orchestrator; handles mobile signing authentication. Generates/validates JWTs for API Gateway."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Keycloak (SSO)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["General-purpose SSO provider; open-source IAM with SSO, user federation, and identity brokering."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3-5 replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Web UI"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Back-office interface for admins/operators. Connects via HTTP REST. v2 uses GraphQL for performance."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Notification Server"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Pushes notifications to Web UI and apps via WebSocket. Only relevant for legacy Authentication Server deployments."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3-5 replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Core Extensions"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Handles SMTP emails, user invitations, and related notifications. Works alongside Notification Server."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2+ replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["KMS (HSM/MPC)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-managed hardware/software protecting notary keys, vault keys, blockchain account keys, and configured system-signing keys. HSM or MPC cluster for protected signing operations."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-managed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Varies"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#kms-hsm-or-mpc"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#kms-hsm-or-mpc"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Blockchain Nodes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Full/archive nodes for each supported chain. Indexers connect directly to read on-chain data."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-managed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Redundant"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateful"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#blockchain-nodes"},"children":["Details"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"#blockchain-nodes"},"children":["Details"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Compliance Adapter"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional connection to third-party screening APIs (Chainalysis, Elliptic) for transaction screening and compliance."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Client-deployed"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1-2 replicas"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Stateless"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Multi-replica"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Helm redeploy"]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"component-details","__idx":4},"children":["Component details"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"postgresql-database","__idx":5},"children":["PostgreSQL Database"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Implement a production-grade 3-node cluster with synchronous replication"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use automated failover (Patroni, AWS RDS Multi-AZ, or equivalent)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Standard database backups with defined RPO/RTO"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical:"]}," Database backups must be time-synced with the anti-rewind file (ARF) backup. A mismatch will be detected as a replay attack and permanently halt the platform."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical:"]}," The database contains HSM-wrapped key material. Seed generation uses the HSM's secure random number generator, and the wrapped keys are stored in the database. Dropping the production database without a backup results in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["permanent, unrecoverable seed loss"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"amqp-message-broker","__idx":6},"children":["AMQP Message Broker"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deploy a multi-node broker cluster (3-node RabbitMQ recommended)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use persistent, replicated queues (Quorum Queues)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A fully managed instance is highly recommended"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In-flight messages are ephemeral and not backed up"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In a DR scenario, rebuild the broker as a new, empty cluster"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"notary","__idx":7},"children":["Notary"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Must run as a singleton (Merkle tree operations cannot be parallelized)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Some clients run multiple replicas in HA mode, but this disables the ARF file and reduces security"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Rebuild ARF using a signed manifest verified by the State Review Authority public key"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Requires PostgreSQL database to be restored first"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/operations-and-maintenance/backup-and-restore/recover-anti-rewind-file"},"children":["Recover ARF"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/operations-and-maintenance/backup-and-restore/register-a-key"},"children":["Register State Review Authority Key"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"vault","__idx":8},"children":["Vault"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Deploy 2+ replicas for high availability"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Vault is stateless and does not use the database for runtime operations"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure the backing HSM has an HA cluster"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Vault is stateless; reconnect to the same HSM cluster after redeployment"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Redeploy via Helm (or Vault Deployer for Nitro) and reconnect to your KMS"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See platform-specific guidance: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/on-premise-hsm/thales-luna"},"children":["Luna HSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/cloud-hsm/aws-cloudhsm"},"children":["AWS CloudHSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/on-premise-hsm/ibm-linuxone"},"children":["IBM LinuxONE"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview"},"children":["MPC"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Multi-AZ vault + HSM architecture:"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following diagram shows a production-grade multi-AZ deployment with vault replicas distributed across availability zones and mesh connectivity to an HSM HA group:"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart TB\n    subgraph app[\"Application Layer\"]\n        core[\"Core Platform\"]\n    end\n\n    subgraph cloud[\"Cloud Provider Environment\"]\n        lb[\"Load Balancer / Proxy\"]\n\n        subgraph az1[\"AZ 1\"]\n            v1[\"Vault Replica<br/>Region Alpha\"]\n        end\n\n        subgraph az2[\"AZ 2\"]\n            v2[\"Vault Replica<br/>Region Beta\"]\n        end\n\n        subgraph az3[\"AZ 3\"]\n            v3[\"Vault Replica<br/>Region Gamma\"]\n        end\n    end\n\n    subgraph hsm[\"HSM HA Group\"]\n        h1[\"HSM Site Alpha\"]\n        h2[\"HSM Site Beta\"]\n        h3[\"HSM Site Gamma\"]\n    end\n\n    v1 --> lb\n    v2 --> lb\n    v3 --> lb\n    lb -->|\"Fetch transactions\"| core\n\n    v1 -->|\"Primary\"| h1\n    v1 -.->|\"Standby\"| h2\n    v1 -.->|\"Standby\"| h3\n\n    v2 -.->|\"Standby\"| h1\n    v2 -->|\"Primary\"| h2\n    v2 -.->|\"Standby\"| h3\n\n    v3 -.->|\"Standby\"| h1\n    v3 -.->|\"Standby\"| h2\n    v3 -->|\"Primary\"| h3\n","diagramHtml":"<svg id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1992.7578125px;\" viewBox=\"0 0 1992.7578125 525\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .error-icon{fill:#552222;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .error-text{fill:#552222;stroke:#552222;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-thickness-normal{stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-thickness-thick{stroke-width:3.5px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-pattern-solid{stroke-dasharray:0;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .marker{fill:#333333;stroke:#333333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .marker.cross{stroke:#333333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 p{margin:0;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster-label text{fill:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster-label span{color:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster-label span p{background-color:transparent;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .label text,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 span{fill:#333;color:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node rect,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node circle,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node ellipse,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node polygon,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .rough-node .label text,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node .label text,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .image-shape .label,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .icon-shape .label{text-anchor:middle;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .rough-node .label,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node .label,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .image-shape .label,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .icon-shape .label{text-align:center;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node.clickable{cursor:pointer;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .arrowheadPath{fill:#333333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .flowchart-link{stroke:#333333;fill:none;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster text{fill:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .cluster span{color:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 rect.text{fill:none;stroke-width:0;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .icon-shape,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .icon-shape p,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .icon-shape .label rect,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 .node .neo-node{stroke:#9370DB;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node rect,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].cluster rect,#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_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 class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-hsm\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"235\" width=\"695.921875\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(300.828125, 235)\"><foreignObject width=\"110.265625\" 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>HSM HA Group</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-cloud\" data-look=\"classic\"><rect style=\"\" x=\"723.921875\" y=\"8\" width=\"1260.8359375\" height=\"331\"></rect><g class=\"cluster-label\" transform=\"translate(1254.29296875, 8)\"><foreignObject width=\"200.09375\" 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>Cloud Provider Environment</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-app\" data-look=\"classic\"><rect style=\"\" x=\"1587.36328125\" y=\"413\" width=\"228.703125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(1640.33984375, 413)\"><foreignObject width=\"122.75\" 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>Application Layer</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-az3\" data-look=\"classic\"><rect style=\"\" x=\"1470.26171875\" y=\"33\" width=\"468.76171875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1687.744140625, 33)\"><foreignObject width=\"33.796875\" 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>AZ 3</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-az2\" data-look=\"classic\"><rect style=\"\" x=\"1227.16796875\" y=\"33\" width=\"223.09375\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1321.81640625, 33)\"><foreignObject width=\"33.796875\" 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>AZ 2</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-az1\" data-look=\"classic\"><rect style=\"\" x=\"743.921875\" y=\"33\" width=\"463.24609375\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(958.646484375, 33)\"><foreignObject width=\"33.796875\" 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>AZ 1</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M1014.988,121.406L1035.969,128.005C1056.949,134.604,1098.91,147.802,1199.801,160.568C1300.691,173.333,1460.512,185.667,1540.422,198C1620.332,210.333,1620.332,222.667,1626.291,232.641C1632.251,242.615,1644.169,250.231,1650.128,254.039L1656.088,257.846\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v1_lb_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_v1_lb_0\" data-points=\"W3sieCI6MTAxNC45ODgyODEyNSwieSI6MTIxLjQwNTc1OTI2MjgxNDM2fSx7IngiOjExNDAuODcxMDkzNzUsInkiOjE2MX0seyJ4IjoxNjIwLjMzMjAzMTI1LCJ5IjoxOTh9LHsieCI6MTYyMC4zMzIwMzEyNSwieSI6MjM1fSx7IngiOjE2NTkuNDU4MzgzNDEzNDYxNCwieSI6MjYwfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1366.608,136L1369.588,140.167C1372.568,144.333,1378.528,152.667,1442.74,163C1506.952,173.333,1629.415,185.667,1690.647,198C1751.879,210.333,1751.879,222.667,1748.322,232.52C1744.766,242.374,1737.652,249.747,1734.095,253.434L1730.539,257.121\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v2_lb_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_v2_lb_0\" data-points=\"W3sieCI6MTM2Ni42MDgwMzIyMjY1NjI1LCJ5IjoxMzZ9LHsieCI6MTM4NC40ODgyODEyNSwieSI6MTYxfSx7IngiOjE3NTEuODc4OTA2MjUsInkiOjE5OH0seyJ4IjoxNzUxLjg3ODkwNjI1LCJ5IjoyMzV9LHsieCI6MTcyNy43NjE1Njg1MDk2MTU1LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1835.586,136L1841.074,140.167C1846.561,144.333,1857.537,152.667,1863.024,163C1868.512,173.333,1868.512,185.667,1868.512,198C1868.512,210.333,1868.512,222.667,1855.783,232.802C1843.054,242.936,1817.597,250.873,1804.868,254.841L1792.14,258.809\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v3_lb_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_v3_lb_0\" data-points=\"W3sieCI6MTgzNS41ODYzMDM3MTA5Mzc1LCJ5IjoxMzZ9LHsieCI6MTg2OC41MTE3MTg3NSwieSI6MTYxfSx7IngiOjE4NjguNTExNzE4NzUsInkiOjE5OH0seyJ4IjoxODY4LjUxMTcxODc1LCJ5IjoyMzV9LHsieCI6MTc4OC4zMjA5MTM0NjE1Mzg2LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1701.715,314L1701.715,318.167C1701.715,322.333,1701.715,330.667,1701.715,341C1701.715,351.333,1701.715,363.667,1701.715,376C1701.715,388.333,1701.715,400.667,1701.715,410.333C1701.715,420,1701.715,427,1701.715,430.5L1701.715,434\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_lb_core_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_lb_core_0\" data-points=\"W3sieCI6MTcwMS43MTQ4NDM3NSwieSI6MzE0fSx7IngiOjE3MDEuNzE0ODQzNzUsInkiOjMzOX0seyJ4IjoxNzAxLjcxNDg0Mzc1LCJ5IjozNzZ9LHsieCI6MTcwMS43MTQ4NDM3NSwieSI6NDEzfSx7IngiOjE3MDEuNzE0ODQzNzUsInkiOjQzOH1d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M859.801,129.358L847.154,134.631C834.508,139.905,809.215,150.453,796.568,161.893C783.922,173.333,783.922,185.667,783.922,198C783.922,210.333,783.922,222.667,689.777,236.309C595.631,249.951,407.341,264.902,313.195,272.377L219.05,279.852\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v1_h1_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_v1_h1_0\" data-points=\"W3sieCI6ODU5LjgwMDc4MTI1LCJ5IjoxMjkuMzU3NTU1NTQ5ODk5NDd9LHsieCI6NzgzLjkyMTg3NSwieSI6MTYxfSx7IngiOjc4My45MjE4NzUsInkiOjE5OH0seyJ4Ijo3ODMuOTIxODc1LCJ5IjoyMzV9LHsieCI6MjE1LjA2MjUsInkiOjI4MC4xNjg4OTc0NzgxMDk0NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M916.438,136L914.199,140.167C911.96,144.333,907.482,152.667,952.175,163C996.868,173.333,1090.733,185.667,1137.665,198C1184.598,210.333,1184.598,222.667,1059.497,236.605C934.396,250.543,684.194,266.086,559.093,273.857L433.992,281.629\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v1_h2_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v1_h2_0\" data-points=\"W3sieCI6OTE2LjQzNzc0NDE0MDYyNSwieSI6MTM2fSx7IngiOjkwMy4wMDM5MDYyNSwieSI6MTYxfSx7IngiOjExODQuNTk3NjU2MjUsInkiOjE5OH0seyJ4IjoxMTg0LjU5NzY1NjI1LCJ5IjoyMzV9LHsieCI6NDMwLCJ5IjoyODEuODc2ODk5ODg3NTM1MDV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M993.386,136L999.368,140.167C1005.35,144.333,1017.313,152.667,1087.94,163C1158.566,173.333,1287.855,185.667,1352.5,198C1417.145,210.333,1417.145,222.667,1293.106,236.487C1169.068,250.308,920.991,265.616,796.953,273.271L672.914,280.925\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v1_h3_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v1_h3_0\" data-points=\"W3sieCI6OTkzLjM4NTYyMDExNzE4NzUsInkiOjEzNn0seyJ4IjoxMDI5LjI3NzM0Mzc1LCJ5IjoxNjF9LHsieCI6MTQxNy4xNDQ1MzEyNSwieSI6MTk4fSx7IngiOjE0MTcuMTQ0NTMxMjUsInkiOjIzNX0seyJ4Ijo2NjguOTIxODc1LCJ5IjoyODEuMTcxMDQwMjQ5OTQ1NX1d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1316.915,136L1314.586,140.167C1312.257,144.333,1307.599,152.667,1245.609,163C1183.618,173.333,1064.296,185.667,1004.634,198C944.973,210.333,944.973,222.667,823.986,236.544C703,250.421,461.027,265.842,340.041,273.552L219.054,281.263\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v2_h1_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v2_h1_0\" data-points=\"W3sieCI6MTMxNi45MTU0MDUyNzM0Mzc1LCJ5IjoxMzZ9LHsieCI6MTMwMi45NDE0MDYyNSwieSI6MTYxfSx7IngiOjk0NC45NzI2NTYyNSwieSI6MTk4fSx7IngiOjk0NC45NzI2NTYyNSwieSI6MjM1fSx7IngiOjIxNS4wNjI1LCJ5IjoyODEuNTE3MjIyNzI0OTAwNzZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1338.715,136L1338.715,140.167C1338.715,144.333,1338.715,152.667,1325.848,163C1312.98,173.333,1287.246,185.667,1274.379,198C1261.512,210.333,1261.512,222.667,1123.592,236.68C985.672,250.694,709.833,266.387,571.913,274.234L433.994,282.081\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v2_h2_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_v2_h2_0\" data-points=\"W3sieCI6MTMzOC43MTQ4NDM3NSwieSI6MTM2fSx7IngiOjEzMzguNzE0ODQzNzUsInkiOjE2MX0seyJ4IjoxMjYxLjUxMTcxODc1LCJ5IjoxOTh9LHsieCI6MTI2MS41MTE3MTg3NSwieSI6MjM1fSx7IngiOjQzMCwieSI6MjgyLjMwODAyMzM2OTYxODY0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1350.902,136L1352.204,140.167C1353.507,144.333,1356.111,152.667,1380.271,163C1404.431,173.333,1450.147,185.667,1473.005,198C1495.863,210.333,1495.863,222.667,1358.705,236.574C1221.547,250.481,947.231,265.962,810.073,273.703L672.916,281.444\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v2_h3_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v2_h3_0\" data-points=\"W3sieCI6MTM1MC45MDIzNDM3NSwieSI6MTM2fSx7IngiOjEzNTguNzE0ODQzNzUsInkiOjE2MX0seyJ4IjoxNDk1Ljg2MzI4MTI1LCJ5IjoxOTh9LHsieCI6MTQ5NS44NjMyODEyNSwieSI6MjM1fSx7IngiOjY2OC45MjE4NzUsInkiOjI4MS42NjkwMjk0NjAwMTk4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1698.199,120.583L1673.628,127.319C1649.057,134.056,1599.915,147.528,1501.195,160.431C1402.475,173.333,1254.177,185.667,1180.028,198C1105.879,210.333,1105.879,222.667,958.075,236.701C810.272,250.736,514.664,266.472,366.861,274.34L219.057,282.208\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v3_h1_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v3_h1_0\" data-points=\"W3sieCI6MTY5OC4xOTkyMTg3NSwieSI6MTIwLjU4MzI4NzMxODI0MDM4fSx7IngiOjE1NTAuNzczNDM3NSwieSI6MTYxfSx7IngiOjExMDUuODc4OTA2MjUsInkiOjE5OH0seyJ4IjoxMTA1Ljg3ODkwNjI1LCJ5IjoyMzV9LHsieCI6MjE1LjA2MjUsInkiOjI4Mi40MjAzNDUyNTkxODQzM31d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1718.912,136L1711.935,140.167C1704.957,144.333,1691.002,152.667,1627.588,163C1564.173,173.333,1451.299,185.667,1394.863,198C1338.426,210.333,1338.426,222.667,1187.687,236.744C1036.949,250.821,735.472,266.642,584.733,274.552L433.995,282.463\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v3_h2_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v3_h2_0\" data-points=\"W3sieCI6MTcxOC45MTI0MTQ1NTA3ODEyLCJ5IjoxMzZ9LHsieCI6MTY3Ny4wNDY4NzUsInkiOjE2MX0seyJ4IjoxMzM4LjQyNTc4MTI1LCJ5IjoxOTh9LHsieCI6MTMzOC40MjU3ODEyNSwieSI6MjM1fSx7IngiOjQzMCwieSI6MjgyLjY3MjIxODUyMDk4Nn1d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path><path d=\"M1796.41,136L1797.712,140.167C1799.014,144.333,1801.618,152.667,1764.346,163C1727.074,173.333,1649.926,185.667,1611.352,198C1572.777,210.333,1572.777,222.667,1422.801,236.645C1272.824,250.624,972.87,266.248,822.893,274.06L672.916,281.872\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-L_v3_h3_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_v3_h3_0\" data-points=\"W3sieCI6MTc5Ni40MTAxNTYyNSwieSI6MTM2fSx7IngiOjE4MDQuMjIyNjU2MjUsInkiOjE2MX0seyJ4IjoxNTcyLjc3NzM0Mzc1LCJ5IjoxOTh9LHsieCI6MTU3Mi43NzczNDM3NSwieSI6MjM1fSx7IngiOjY2OC45MjE4NzUsInkiOjI4Mi4wNzk3NDc1NDM3MTYxN31d\" data-look=\"classic\" marker-end=\"url(#diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_v1_lb_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_v2_lb_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_v3_lb_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(1701.71484375, 376)\"><g class=\"label\" data-id=\"L_lb_core_0\" transform=\"translate(-65.3671875, -12)\"><foreignObject width=\"130.734375\" 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>Fetch transactions</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(783.921875, 198)\"><g class=\"label\" data-id=\"L_v1_h1_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1184.59765625, 198)\"><g class=\"label\" data-id=\"L_v1_h2_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1417.14453125, 198)\"><g class=\"label\" data-id=\"L_v1_h3_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(944.97265625, 198)\"><g class=\"label\" data-id=\"L_v2_h1_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1261.51171875, 198)\"><g class=\"label\" data-id=\"L_v2_h2_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1495.86328125, 198)\"><g class=\"label\" data-id=\"L_v2_h3_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1105.87890625, 198)\"><g class=\"label\" data-id=\"L_v3_h1_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1338.42578125, 198)\"><g class=\"label\" data-id=\"L_v3_h2_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1572.77734375, 198)\"><g class=\"label\" data-id=\"L_v3_h3_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-core-0\" data-look=\"classic\" transform=\"translate(1701.71484375, 465)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.3515625\" y=\"-27\" width=\"158.703125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.3515625, -12)\"><rect></rect><foreignObject width=\"98.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>Core Platform</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-lb-1\" data-look=\"classic\" transform=\"translate(1701.71484375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.7109375\" y=\"-27\" width=\"217.421875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.7109375, -12)\"><rect></rect><foreignObject width=\"157.421875\" 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>Load Balancer / Proxy</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-v1-2\" data-look=\"classic\" transform=\"translate(937.39453125, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.59375\" y=\"-39\" width=\"155.1875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.59375, -24)\"><rect></rect><foreignObject width=\"95.1875\" height=\"48\"><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<br>Region Alpha</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-v2-3\" data-look=\"classic\" transform=\"translate(1338.71484375, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-76.546875\" y=\"-39\" width=\"153.09375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-46.546875, -24)\"><rect></rect><foreignObject width=\"93.09375\" height=\"48\"><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<br>Region Beta</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-v3-4\" data-look=\"classic\" transform=\"translate(1784.22265625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.0234375\" y=\"-39\" width=\"172.046875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.0234375, -24)\"><rect></rect><foreignObject width=\"112.046875\" height=\"48\"><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<br>Region Gamma</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-h1-5\" data-look=\"classic\" transform=\"translate(129.03125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.03125\" y=\"-27\" width=\"172.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.03125, -12)\"><rect></rect><foreignObject width=\"112.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>HSM Site Alpha</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-h2-6\" data-look=\"classic\" transform=\"translate(347.53125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.46875\" y=\"-27\" width=\"164.9375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.46875, -12)\"><rect></rect><foreignObject width=\"104.9375\" 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 Site Beta</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-flowchart-h3-7\" data-look=\"classic\" transform=\"translate(574.4609375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-94.4609375\" y=\"-27\" width=\"188.921875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-64.4609375, -12)\"><rect></rect><foreignObject width=\"128.921875\" 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 Site Gamma</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-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-8a12e9b60c966a1e06087b3287c181d9565a73ca0b902ffe4953c4b3fbee6757-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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 1992.7578125px;\" viewBox=\"0 0 1992.7578125 525\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .error-icon{fill:#a44141;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .error-text{fill:#ddd;stroke:#ddd;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-thickness-normal{stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-thickness-thick{stroke-width:3.5px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-pattern-solid{stroke-dasharray:0;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .marker.cross{stroke:lightgrey;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 p{margin:0;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster-label text{fill:#F9FFFE;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster-label span{color:#F9FFFE;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster-label span p{background-color:transparent;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .label text,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 span{fill:#ccc;color:#ccc;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node rect,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node circle,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node ellipse,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node polygon,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .rough-node .label text,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node .label text,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .image-shape .label,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .icon-shape .label{text-anchor:middle;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .rough-node .label,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node .label,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .image-shape .label,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .icon-shape .label{text-align:center;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node.clickable{cursor:pointer;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .arrowheadPath{fill:lightgrey;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster text{fill:#F9FFFE;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .cluster span{color:#F9FFFE;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 rect.text{fill:none;stroke-width:0;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .icon-shape,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .icon-shape p,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .icon-shape .label rect,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 .node .neo-node{stroke:#ccc;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node rect,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].cluster rect,#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node polygon{stroke:url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node path{stroke:url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-gradient);stroke-width:1px;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node circle{stroke:url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_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 class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-hsm\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"235\" width=\"695.921875\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(300.828125, 235)\"><foreignObject width=\"110.265625\" 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>HSM HA Group</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-cloud\" data-look=\"classic\"><rect style=\"\" x=\"723.921875\" y=\"8\" width=\"1260.8359375\" height=\"331\"></rect><g class=\"cluster-label\" transform=\"translate(1254.29296875, 8)\"><foreignObject width=\"200.09375\" 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>Cloud Provider Environment</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-app\" data-look=\"classic\"><rect style=\"\" x=\"1587.36328125\" y=\"413\" width=\"228.703125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(1640.33984375, 413)\"><foreignObject width=\"122.75\" 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>Application Layer</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-az3\" data-look=\"classic\"><rect style=\"\" x=\"1470.26171875\" y=\"33\" width=\"468.76171875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1687.744140625, 33)\"><foreignObject width=\"33.796875\" 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>AZ 3</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-az2\" data-look=\"classic\"><rect style=\"\" x=\"1227.16796875\" y=\"33\" width=\"223.09375\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1321.81640625, 33)\"><foreignObject width=\"33.796875\" 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>AZ 2</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-az1\" data-look=\"classic\"><rect style=\"\" x=\"743.921875\" y=\"33\" width=\"463.24609375\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(958.646484375, 33)\"><foreignObject width=\"33.796875\" 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>AZ 1</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M1014.988,121.406L1035.969,128.005C1056.949,134.604,1098.91,147.802,1199.801,160.568C1300.691,173.333,1460.512,185.667,1540.422,198C1620.332,210.333,1620.332,222.667,1626.291,232.641C1632.251,242.615,1644.169,250.231,1650.128,254.039L1656.088,257.846\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v1_lb_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_v1_lb_0\" data-points=\"W3sieCI6MTAxNC45ODgyODEyNSwieSI6MTIxLjQwNTc1OTI2MjgxNDM2fSx7IngiOjExNDAuODcxMDkzNzUsInkiOjE2MX0seyJ4IjoxNjIwLjMzMjAzMTI1LCJ5IjoxOTh9LHsieCI6MTYyMC4zMzIwMzEyNSwieSI6MjM1fSx7IngiOjE2NTkuNDU4MzgzNDEzNDYxNCwieSI6MjYwfV0=\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1366.608,136L1369.588,140.167C1372.568,144.333,1378.528,152.667,1442.74,163C1506.952,173.333,1629.415,185.667,1690.647,198C1751.879,210.333,1751.879,222.667,1748.322,232.52C1744.766,242.374,1737.652,249.747,1734.095,253.434L1730.539,257.121\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v2_lb_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_v2_lb_0\" data-points=\"W3sieCI6MTM2Ni42MDgwMzIyMjY1NjI1LCJ5IjoxMzZ9LHsieCI6MTM4NC40ODgyODEyNSwieSI6MTYxfSx7IngiOjE3NTEuODc4OTA2MjUsInkiOjE5OH0seyJ4IjoxNzUxLjg3ODkwNjI1LCJ5IjoyMzV9LHsieCI6MTcyNy43NjE1Njg1MDk2MTU1LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1835.586,136L1841.074,140.167C1846.561,144.333,1857.537,152.667,1863.024,163C1868.512,173.333,1868.512,185.667,1868.512,198C1868.512,210.333,1868.512,222.667,1855.783,232.802C1843.054,242.936,1817.597,250.873,1804.868,254.841L1792.14,258.809\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v3_lb_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_v3_lb_0\" data-points=\"W3sieCI6MTgzNS41ODYzMDM3MTA5Mzc1LCJ5IjoxMzZ9LHsieCI6MTg2OC41MTE3MTg3NSwieSI6MTYxfSx7IngiOjE4NjguNTExNzE4NzUsInkiOjE5OH0seyJ4IjoxODY4LjUxMTcxODc1LCJ5IjoyMzV9LHsieCI6MTc4OC4zMjA5MTM0NjE1Mzg2LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1701.715,314L1701.715,318.167C1701.715,322.333,1701.715,330.667,1701.715,341C1701.715,351.333,1701.715,363.667,1701.715,376C1701.715,388.333,1701.715,400.667,1701.715,410.333C1701.715,420,1701.715,427,1701.715,430.5L1701.715,434\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_lb_core_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_lb_core_0\" data-points=\"W3sieCI6MTcwMS43MTQ4NDM3NSwieSI6MzE0fSx7IngiOjE3MDEuNzE0ODQzNzUsInkiOjMzOX0seyJ4IjoxNzAxLjcxNDg0Mzc1LCJ5IjozNzZ9LHsieCI6MTcwMS43MTQ4NDM3NSwieSI6NDEzfSx7IngiOjE3MDEuNzE0ODQzNzUsInkiOjQzOH1d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M859.801,129.358L847.154,134.631C834.508,139.905,809.215,150.453,796.568,161.893C783.922,173.333,783.922,185.667,783.922,198C783.922,210.333,783.922,222.667,689.777,236.309C595.631,249.951,407.341,264.902,313.195,272.377L219.05,279.852\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v1_h1_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_v1_h1_0\" data-points=\"W3sieCI6ODU5LjgwMDc4MTI1LCJ5IjoxMjkuMzU3NTU1NTQ5ODk5NDd9LHsieCI6NzgzLjkyMTg3NSwieSI6MTYxfSx7IngiOjc4My45MjE4NzUsInkiOjE5OH0seyJ4Ijo3ODMuOTIxODc1LCJ5IjoyMzV9LHsieCI6MjE1LjA2MjUsInkiOjI4MC4xNjg4OTc0NzgxMDk0NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M916.438,136L914.199,140.167C911.96,144.333,907.482,152.667,952.175,163C996.868,173.333,1090.733,185.667,1137.665,198C1184.598,210.333,1184.598,222.667,1059.497,236.605C934.396,250.543,684.194,266.086,559.093,273.857L433.992,281.629\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v1_h2_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v1_h2_0\" data-points=\"W3sieCI6OTE2LjQzNzc0NDE0MDYyNSwieSI6MTM2fSx7IngiOjkwMy4wMDM5MDYyNSwieSI6MTYxfSx7IngiOjExODQuNTk3NjU2MjUsInkiOjE5OH0seyJ4IjoxMTg0LjU5NzY1NjI1LCJ5IjoyMzV9LHsieCI6NDMwLCJ5IjoyODEuODc2ODk5ODg3NTM1MDV9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M993.386,136L999.368,140.167C1005.35,144.333,1017.313,152.667,1087.94,163C1158.566,173.333,1287.855,185.667,1352.5,198C1417.145,210.333,1417.145,222.667,1293.106,236.487C1169.068,250.308,920.991,265.616,796.953,273.271L672.914,280.925\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v1_h3_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v1_h3_0\" data-points=\"W3sieCI6OTkzLjM4NTYyMDExNzE4NzUsInkiOjEzNn0seyJ4IjoxMDI5LjI3NzM0Mzc1LCJ5IjoxNjF9LHsieCI6MTQxNy4xNDQ1MzEyNSwieSI6MTk4fSx7IngiOjE0MTcuMTQ0NTMxMjUsInkiOjIzNX0seyJ4Ijo2NjguOTIxODc1LCJ5IjoyODEuMTcxMDQwMjQ5OTQ1NX1d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1316.915,136L1314.586,140.167C1312.257,144.333,1307.599,152.667,1245.609,163C1183.618,173.333,1064.296,185.667,1004.634,198C944.973,210.333,944.973,222.667,823.986,236.544C703,250.421,461.027,265.842,340.041,273.552L219.054,281.263\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v2_h1_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v2_h1_0\" data-points=\"W3sieCI6MTMxNi45MTU0MDUyNzM0Mzc1LCJ5IjoxMzZ9LHsieCI6MTMwMi45NDE0MDYyNSwieSI6MTYxfSx7IngiOjk0NC45NzI2NTYyNSwieSI6MTk4fSx7IngiOjk0NC45NzI2NTYyNSwieSI6MjM1fSx7IngiOjIxNS4wNjI1LCJ5IjoyODEuNTE3MjIyNzI0OTAwNzZ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1338.715,136L1338.715,140.167C1338.715,144.333,1338.715,152.667,1325.848,163C1312.98,173.333,1287.246,185.667,1274.379,198C1261.512,210.333,1261.512,222.667,1123.592,236.68C985.672,250.694,709.833,266.387,571.913,274.234L433.994,282.081\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v2_h2_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_v2_h2_0\" data-points=\"W3sieCI6MTMzOC43MTQ4NDM3NSwieSI6MTM2fSx7IngiOjEzMzguNzE0ODQzNzUsInkiOjE2MX0seyJ4IjoxMjYxLjUxMTcxODc1LCJ5IjoxOTh9LHsieCI6MTI2MS41MTE3MTg3NSwieSI6MjM1fSx7IngiOjQzMCwieSI6MjgyLjMwODAyMzM2OTYxODY0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1350.902,136L1352.204,140.167C1353.507,144.333,1356.111,152.667,1380.271,163C1404.431,173.333,1450.147,185.667,1473.005,198C1495.863,210.333,1495.863,222.667,1358.705,236.574C1221.547,250.481,947.231,265.962,810.073,273.703L672.916,281.444\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v2_h3_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v2_h3_0\" data-points=\"W3sieCI6MTM1MC45MDIzNDM3NSwieSI6MTM2fSx7IngiOjEzNTguNzE0ODQzNzUsInkiOjE2MX0seyJ4IjoxNDk1Ljg2MzI4MTI1LCJ5IjoxOTh9LHsieCI6MTQ5NS44NjMyODEyNSwieSI6MjM1fSx7IngiOjY2OC45MjE4NzUsInkiOjI4MS42NjkwMjk0NjAwMTk4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1698.199,120.583L1673.628,127.319C1649.057,134.056,1599.915,147.528,1501.195,160.431C1402.475,173.333,1254.177,185.667,1180.028,198C1105.879,210.333,1105.879,222.667,958.075,236.701C810.272,250.736,514.664,266.472,366.861,274.34L219.057,282.208\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v3_h1_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v3_h1_0\" data-points=\"W3sieCI6MTY5OC4xOTkyMTg3NSwieSI6MTIwLjU4MzI4NzMxODI0MDM4fSx7IngiOjE1NTAuNzczNDM3NSwieSI6MTYxfSx7IngiOjExMDUuODc4OTA2MjUsInkiOjE5OH0seyJ4IjoxMTA1Ljg3ODkwNjI1LCJ5IjoyMzV9LHsieCI6MjE1LjA2MjUsInkiOjI4Mi40MjAzNDUyNTkxODQzM31d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1718.912,136L1711.935,140.167C1704.957,144.333,1691.002,152.667,1627.588,163C1564.173,173.333,1451.299,185.667,1394.863,198C1338.426,210.333,1338.426,222.667,1187.687,236.744C1036.949,250.821,735.472,266.642,584.733,274.552L433.995,282.463\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v3_h2_0\" class=\"edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_v3_h2_0\" data-points=\"W3sieCI6MTcxOC45MTI0MTQ1NTA3ODEyLCJ5IjoxMzZ9LHsieCI6MTY3Ny4wNDY4NzUsInkiOjE2MX0seyJ4IjoxMzM4LjQyNTc4MTI1LCJ5IjoxOTh9LHsieCI6MTMzOC40MjU3ODEyNSwieSI6MjM1fSx7IngiOjQzMCwieSI6MjgyLjY3MjIxODUyMDk4Nn1d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path><path d=\"M1796.41,136L1797.712,140.167C1799.014,144.333,1801.618,152.667,1764.346,163C1727.074,173.333,1649.926,185.667,1611.352,198C1572.777,210.333,1572.777,222.667,1422.801,236.645C1272.824,250.624,972.87,266.248,822.893,274.06L672.916,281.872\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-L_v3_h3_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_v3_h3_0\" data-points=\"W3sieCI6MTc5Ni40MTAxNTYyNSwieSI6MTM2fSx7IngiOjE4MDQuMjIyNjU2MjUsInkiOjE2MX0seyJ4IjoxNTcyLjc3NzM0Mzc1LCJ5IjoxOTh9LHsieCI6MTU3Mi43NzczNDM3NSwieSI6MjM1fSx7IngiOjY2OC45MjE4NzUsInkiOjI4Mi4wNzk3NDc1NDM3MTYxN31d\" data-look=\"classic\" marker-end=\"url(#diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_v1_lb_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_v2_lb_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_v3_lb_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(1701.71484375, 376)\"><g class=\"label\" data-id=\"L_lb_core_0\" transform=\"translate(-65.3671875, -12)\"><foreignObject width=\"130.734375\" 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>Fetch transactions</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(783.921875, 198)\"><g class=\"label\" data-id=\"L_v1_h1_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1184.59765625, 198)\"><g class=\"label\" data-id=\"L_v1_h2_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1417.14453125, 198)\"><g class=\"label\" data-id=\"L_v1_h3_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(944.97265625, 198)\"><g class=\"label\" data-id=\"L_v2_h1_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1261.51171875, 198)\"><g class=\"label\" data-id=\"L_v2_h2_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1495.86328125, 198)\"><g class=\"label\" data-id=\"L_v2_h3_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1105.87890625, 198)\"><g class=\"label\" data-id=\"L_v3_h1_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1338.42578125, 198)\"><g class=\"label\" data-id=\"L_v3_h2_0\" transform=\"translate(-29.359375, -12)\"><foreignObject width=\"58.71875\" 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>Standby</p></span></div></foreignObject></g></g><g class=\"edgeLabel\" transform=\"translate(1572.77734375, 198)\"><g class=\"label\" data-id=\"L_v3_h3_0\" transform=\"translate(-27.5546875, -12)\"><foreignObject width=\"55.109375\" 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>Primary</p></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-core-0\" data-look=\"classic\" transform=\"translate(1701.71484375, 465)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.3515625\" y=\"-27\" width=\"158.703125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.3515625, -12)\"><rect></rect><foreignObject width=\"98.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>Core Platform</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-lb-1\" data-look=\"classic\" transform=\"translate(1701.71484375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-108.7109375\" y=\"-27\" width=\"217.421875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-78.7109375, -12)\"><rect></rect><foreignObject width=\"157.421875\" 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>Load Balancer / Proxy</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-v1-2\" data-look=\"classic\" transform=\"translate(937.39453125, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.59375\" y=\"-39\" width=\"155.1875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.59375, -24)\"><rect></rect><foreignObject width=\"95.1875\" height=\"48\"><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<br>Region Alpha</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-v2-3\" data-look=\"classic\" transform=\"translate(1338.71484375, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-76.546875\" y=\"-39\" width=\"153.09375\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-46.546875, -24)\"><rect></rect><foreignObject width=\"93.09375\" height=\"48\"><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<br>Region Beta</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-v3-4\" data-look=\"classic\" transform=\"translate(1784.22265625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.0234375\" y=\"-39\" width=\"172.046875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.0234375, -24)\"><rect></rect><foreignObject width=\"112.046875\" height=\"48\"><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<br>Region Gamma</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-h1-5\" data-look=\"classic\" transform=\"translate(129.03125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.03125\" y=\"-27\" width=\"172.0625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.03125, -12)\"><rect></rect><foreignObject width=\"112.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>HSM Site Alpha</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-h2-6\" data-look=\"classic\" transform=\"translate(347.53125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.46875\" y=\"-27\" width=\"164.9375\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.46875, -12)\"><rect></rect><foreignObject width=\"104.9375\" 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 Site Beta</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-flowchart-h3-7\" data-look=\"classic\" transform=\"translate(574.4609375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-94.4609375\" y=\"-27\" width=\"188.921875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-64.4609375, -12)\"><rect></rect><foreignObject width=\"128.921875\" 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 Site Gamma</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-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-55a10f8d182e18027fe364c2897f93b51366093a77c16f5474a77eee393a78b6-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 app[\"Application Layer\"]\n        core[\"Core Platform\"]\n    end\n\n    subgraph cloud[\"Cloud Provider Environment\"]\n        lb[\"Load Balancer / Proxy\"]\n\n        subgraph az1[\"AZ 1\"]\n            v1[\"Vault Replica<br/>Region Alpha\"]\n        end\n\n        subgraph az2[\"AZ 2\"]\n            v2[\"Vault Replica<br/>Region Beta\"]\n        end\n\n        subgraph az3[\"AZ 3\"]\n            v3[\"Vault Replica<br/>Region Gamma\"]\n        end\n    end\n\n    subgraph hsm[\"HSM HA Group\"]\n        h1[\"HSM Site Alpha\"]\n        h2[\"HSM Site Beta\"]\n        h3[\"HSM Site Gamma\"]\n    end\n\n    v1 --> lb\n    v2 --> lb\n    v3 --> lb\n    lb -->|\"Fetch transactions\"| core\n\n    v1 -->|\"Primary\"| h1\n    v1 -.->|\"Standby\"| h2\n    v1 -.->|\"Standby\"| h3\n\n    v2 -.->|\"Standby\"| h1\n    v2 -->|\"Primary\"| h2\n    v2 -.->|\"Standby\"| h3\n\n    v3 -.->|\"Standby\"| h1\n    v3 -.->|\"Standby\"| h2\n    v3 -->|\"Primary\"| h3\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Key architecture points:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Each vault replica has a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["primary"]}," HSM connection and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["standby"]}," connections to all other HSMs"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Requirements"]},":"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["At least 2 Luna HSM appliances (one partition per HSM for replication)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Matching partition configurations on each HSM"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"kms-hsm-or-mpc","__idx":9},"children":["KMS (HSM or MPC)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Recommended instances:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["HSM: 2+ nodes in HA configuration"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["MPC: 3-of-4 for most operations (4-of-4 for account creation)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HSM:"]}," Use vendor-specific HA groups/clustering"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MPC:"]}," Natively resilient as long as the m-of-n threshold is met"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You are responsible for vendor-specific on/off-site secure key backup procedures (offline HSM master keys, MPC shard backups, etc.)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See platform-specific guides: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/on-premise-hsm/thales-luna"},"children":["Luna HSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/cloud-hsm/aws-cloudhsm"},"children":["AWS CloudHSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/on-premise-hsm/ibm-linuxone"},"children":["IBM LinuxONE"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/overview"},"children":["MPC"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For MPC disaster recovery (deploying to a secondary AWS region), see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/integrate-kms/mpc/disaster-recovery"},"children":["MPC disaster recovery"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"blockchain-nodes","__idx":10},"children":["Blockchain nodes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use a load balancer to provide a single, highly-available endpoint"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Consider multiple backing vendors for redundancy"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Vendor dependent"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/planning/blockchain-nodes"},"children":["Blockchain Node Planning"]}," for detailed guidance"]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"event-processing","__idx":11},"children":["Event processing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["HA requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["May require singleton configuration depending on queue setup"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Running 2 replicas reading the same messages could create duplicate processing depending on queue configuration"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["DR requirements:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stateless; redeploy via Helm"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"checklist-before-you-proceed","__idx":12},"children":["Checklist: Before you proceed"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"decisions-made","__idx":13},"children":["Decisions made"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," HA strategy selected for PostgreSQL (e.g., 3-node Patroni, RDS Multi-AZ)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," HA strategy selected for RabbitMQ (e.g., 3-node cluster with quorum queues)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," DR strategy confirmed (backup locations, recovery time objectives)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," State Review Authority key custodian identified for ARF recovery"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"artifacts-ready","__idx":14},"children":["Artifacts ready"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," Component responsibility matrix documented internally"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," HA/DR runbooks drafted for each client-managed component"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"input","attributes":{"checked":false,"type":"checkbox","readOnly":true},"children":[]}," ARF backup procedure time-synced with database backups"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"configuration-reference","__idx":15},"children":["Configuration reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/operations-and-maintenance/backup-and-restore"},"children":["Back up, restore, and recover"]}," for disaster recovery steps."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-step","__idx":16},"children":["Next step"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.38/deployment/planning/key-management"},"children":["Key management planning"]}," - Choose your Key management system (HSM or MPC)."]}]}]},"headings":[{"value":"Resilience planning","id":"resilience-planning","depth":1},{"value":"Core concepts","id":"core-concepts","depth":2},{"value":"Component categories","id":"component-categories","depth":2},{"value":"Component summary","id":"component-summary","depth":2},{"value":"Component details","id":"component-details","depth":2},{"value":"PostgreSQL Database","id":"postgresql-database","depth":3},{"value":"AMQP Message Broker","id":"amqp-message-broker","depth":3},{"value":"Notary","id":"notary","depth":3},{"value":"Vault","id":"vault","depth":3},{"value":"KMS (HSM or MPC)","id":"kms-hsm-or-mpc","depth":3},{"value":"Blockchain nodes","id":"blockchain-nodes","depth":3},{"value":"Event processing","id":"event-processing","depth":3},{"value":"Checklist: Before you proceed","id":"checklist-before-you-proceed","depth":2},{"value":"Decisions made","id":"decisions-made","depth":3},{"value":"Artifacts ready","id":"artifacts-ready","depth":3},{"value":"Configuration reference","id":"configuration-reference","depth":3},{"value":"Next step","id":"next-step","depth":2}],"frontmatter":{"seo":{"title":"Resilience planning"}},"lastModified":"2026-07-29T10:31:49.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.38/deployment/planning/resilience","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}