{"templateId":"markdown","versions":[{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/deployment/planning/resilience","default":true,"active":true,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/deployment/planning/resilience","default":false,"active":false,"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/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/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/operations-and-maintenance/backup-and-restore/recover-anti-rewind-file"},"children":["Recover ARF"]}," and ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/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/deployment/integrate-kms/on-premise-hsm/thales-luna"},"children":["Luna HSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/cloud-hsm/aws-cloudhsm"},"children":["AWS CloudHSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/on-premise-hsm/ibm-linuxone"},"children":["IBM LinuxONE"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 2017.953125px;\" viewBox=\"0 0 2017.953125 525\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .error-icon{fill:#552222;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .error-text{fill:#552222;stroke:#552222;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-thickness-normal{stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-thickness-thick{stroke-width:3.5px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-pattern-solid{stroke-dasharray:0;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-pattern-dashed{stroke-dasharray:3;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edge-pattern-dotted{stroke-dasharray:2;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .marker{fill:#333333;stroke:#333333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .marker.cross{stroke:#333333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea p{margin:0;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster-label text{fill:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster-label span{color:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster-label span p{background-color:transparent;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .label text,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea span{fill:#333;color:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node rect,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node circle,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node ellipse,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node polygon,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .rough-node .label text,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node .label text,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .image-shape .label,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .icon-shape .label{text-anchor:middle;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .rough-node .label,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node .label,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .image-shape .label,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .icon-shape .label{text-align:center;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node.clickable{cursor:pointer;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .arrowheadPath{fill:#333333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .flowchart-link{stroke:#333333;fill:none;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster text{fill:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .cluster span{color:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea rect.text{fill:none;stroke-width:0;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .icon-shape,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .icon-shape p,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .icon-shape .label rect,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea .node .neo-node{stroke:#9370DB;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node rect,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].cluster rect,#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-hsm\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"235\" width=\"698.203125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(300.890625, 235)\"><foreignObject width=\"112.421875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>HSM HA Group</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-cloud\" data-look=\"classic\"><rect style=\"\" x=\"726.203125\" y=\"8\" width=\"1283.75\" height=\"331\"></rect><g class=\"cluster-label\" transform=\"translate(1263.0234375, 8)\"><foreignObject width=\"210.109375\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-app\" data-look=\"classic\"><rect style=\"\" x=\"1606.2265625\" y=\"413\" width=\"233.828125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(1658.9140625, 413)\"><foreignObject width=\"128.453125\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-az3\" data-look=\"classic\"><rect style=\"\" x=\"1484.6875\" y=\"33\" width=\"478.1171875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1707.46484375, 33)\"><foreignObject width=\"32.5625\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-az2\" data-look=\"classic\"><rect style=\"\" x=\"1239.625\" y=\"33\" width=\"225.0625\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1335.875, 33)\"><foreignObject width=\"32.5625\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-az1\" data-look=\"classic\"><rect style=\"\" x=\"746.203125\" y=\"33\" width=\"473.421875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(966.6328125, 33)\"><foreignObject width=\"32.5625\" 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=\"M1022.488,121.178L1044.177,127.815C1065.866,134.452,1109.243,147.726,1212.529,160.53C1315.815,173.333,1479.009,185.667,1560.606,198C1642.203,210.333,1642.203,222.667,1648.128,232.64C1654.052,242.613,1665.901,250.225,1671.826,254.032L1677.75,257.838\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTAyMi40ODgyODEyNSwieSI6MTIxLjE3NzUxMjE0MDQ1NTczfSx7IngiOjExNTIuNjIxMDkzNzUsInkiOjE2MX0seyJ4IjoxNjQyLjIwMzEyNSwieSI6MTk4fSx7IngiOjE2NDIuMjAzMTI1LCJ5IjoyMzV9LHsieCI6MTY4MS4xMTUzODQ2MTUzODQ1LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1380.349,136L1383.361,140.167C1386.374,144.333,1392.398,152.667,1458.129,163C1523.859,173.333,1649.297,185.667,1712.016,198C1774.734,210.333,1774.734,222.667,1771.07,232.527C1767.405,242.387,1760.076,249.774,1756.412,253.467L1752.747,257.161\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTM4MC4zNDkzNjUyMzQzNzUsInkiOjEzNn0seyJ4IjoxMzk4LjQyMTg3NSwieSI6MTYxfSx7IngiOjE3NzQuNzM0Mzc1LCJ5IjoxOTh9LHsieCI6MTc3NC43MzQzNzUsInkiOjIzNX0seyJ4IjoxNzQ5LjkyOTY4NzUsInkiOjI2MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1858.164,136L1863.748,140.167C1869.333,144.333,1880.502,152.667,1886.087,163C1891.672,173.333,1891.672,185.667,1891.672,198C1891.672,210.333,1891.672,222.667,1878.805,232.803C1865.938,242.94,1840.204,250.88,1827.337,254.851L1814.469,258.821\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTg1OC4xNjM1NzQyMTg3NSwieSI6MTM2fSx7IngiOjE4OTEuNjcxODc1LCJ5IjoxNjF9LHsieCI6MTg5MS42NzE4NzUsInkiOjE5OH0seyJ4IjoxODkxLjY3MTg3NSwieSI6MjM1fSx7IngiOjE4MTAuNjQ3MjM1NTc2OTIzLCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1723.141,314L1723.141,318.167C1723.141,322.333,1723.141,330.667,1723.141,341C1723.141,351.333,1723.141,363.667,1723.141,376C1723.141,388.333,1723.141,400.667,1723.141,410.333C1723.141,420,1723.141,427,1723.141,430.5L1723.141,434\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTcyMy4xNDA2MjUsInkiOjMxNH0seyJ4IjoxNzIzLjE0MDYyNSwieSI6MzM5fSx7IngiOjE3MjMuMTQwNjI1LCJ5IjozNzZ9LHsieCI6MTcyMy4xNDA2MjUsInkiOjQxM30seyJ4IjoxNzIzLjE0MDYyNSwieSI6NDM4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M864.473,129.15L851.428,134.459C838.383,139.767,812.293,150.383,799.248,161.858C786.203,173.333,786.203,185.667,786.203,198C786.203,210.333,786.203,222.667,691.917,236.302C597.631,249.937,409.059,264.875,314.773,272.344L220.488,279.812\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6ODY0LjQ3MjY1NjI1LCJ5IjoxMjkuMTUwMjEyMzUzNzczOTV9LHsieCI6Nzg2LjIwMzEyNSwieSI6MTYxfSx7IngiOjc4Ni4yMDMxMjUsInkiOjE5OH0seyJ4Ijo3ODYuMjAzMTI1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4MC4xMjgyMjIyMTY5MzI4NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M921.952,136L919.652,140.167C917.352,144.333,912.752,152.667,957.971,163C1003.19,173.333,1098.228,185.667,1145.747,198C1193.266,210.333,1193.266,222.667,1066.918,236.614C940.57,250.561,687.875,266.122,561.528,273.903L435.18,281.683\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6OTIxLjk1MjM5MjU3ODEyNSwieSI6MTM2fSx7IngiOjkwOC4xNTIzNDM3NSwieSI6MTYxfSx7IngiOjExOTMuMjY1NjI1LCJ5IjoxOTh9LHsieCI6MTE5My4yNjU2MjUsInkiOjIzNX0seyJ4Ijo0MzEuMTg3NSwieSI6MjgxLjkyOTIyMzAyNjEwODg0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1001.047,136L1007.198,140.167C1013.348,144.333,1025.649,152.667,1097.617,163C1169.586,173.333,1301.223,185.667,1367.041,198C1432.859,210.333,1432.859,222.667,1306.582,236.498C1180.305,250.33,927.75,265.66,801.473,273.326L675.196,280.991\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTAwMS4wNDczNjMyODEyNSwieSI6MTM2fSx7IngiOjEwMzcuOTQ5MjE4NzUsInkiOjE2MX0seyJ4IjoxNDMyLjg1OTM3NSwieSI6MTk4fSx7IngiOjE0MzIuODU5Mzc1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgxLjIzMjk3MTI4MjEzNTQ1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1330.057,136L1327.696,140.167C1325.335,144.333,1320.613,152.667,1257.267,163C1193.922,173.333,1071.953,185.667,1010.969,198C949.984,210.333,949.984,222.667,828.402,236.541C706.82,250.416,463.656,265.832,342.074,273.539L220.492,281.247\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTMzMC4wNTY4ODQ3NjU2MjUsInkiOjEzNn0seyJ4IjoxMzE1Ljg5MDYyNSwieSI6MTYxfSx7IngiOjk0OS45ODQzNzUsInkiOjE5OH0seyJ4Ijo5NDkuOTg0Mzc1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4MS41MDAzNTI0MTQ1MTU2NX1d\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1352.156,136L1352.156,140.167C1352.156,144.333,1352.156,152.667,1338.932,163C1325.708,173.333,1299.26,185.667,1286.036,198C1272.813,210.333,1272.813,222.667,1133.207,236.69C993.602,250.714,714.392,266.427,574.786,274.284L435.181,282.141\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTM1Mi4xNTYyNSwieSI6MTM2fSx7IngiOjEzNTIuMTU2MjUsInkiOjE2MX0seyJ4IjoxMjcyLjgxMjUsInkiOjE5OH0seyJ4IjoxMjcyLjgxMjUsInkiOjIzNX0seyJ4Ijo0MzEuMTg3NSwieSI6MjgyLjM2NTc3OTQxNjI0MTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1364.344,136L1365.646,140.167C1366.948,144.333,1369.552,152.667,1394.388,163C1419.224,173.333,1466.292,185.667,1489.826,198C1513.359,210.333,1513.359,222.667,1373.666,236.584C1233.972,250.502,954.584,266.004,814.891,273.756L675.197,281.507\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTM2NC4zNDM3NSwieSI6MTM2fSx7IngiOjEzNzIuMTU2MjUsInkiOjE2MX0seyJ4IjoxNTEzLjM1OTM3NSwieSI6MTk4fSx7IngiOjE1MTMuMzU5Mzc1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgxLjcyODM0NDMyMzM4MjU0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1718.625,120.264L1693.158,127.053C1667.69,133.843,1616.755,147.421,1515.779,160.377C1414.802,173.333,1263.784,185.667,1188.275,198C1112.766,210.333,1112.766,222.667,964.054,236.7C815.342,250.733,517.918,266.467,369.206,274.333L220.494,282.2\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTcxOC42MjUsInkiOjEyMC4yNjQwMTc3MDMxNDY4Nn0seyJ4IjoxNTY1LjgyMDMxMjUsInkiOjE2MX0seyJ4IjoxMTEyLjc2NTYyNSwieSI6MTk4fSx7IngiOjExMTIuNzY1NjI1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4Mi40MTEwNTk3MTczODc1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1738.693,136L1731.513,140.167C1724.334,144.333,1709.976,152.667,1645.587,163C1581.198,173.333,1466.779,185.667,1409.569,198C1352.359,210.333,1352.359,222.667,1199.497,236.754C1046.634,250.842,740.908,266.684,588.045,274.605L435.182,282.526\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTczOC42OTI3NDkwMjM0Mzc1LCJ5IjoxMzZ9LHsieCI6MTY5NS42MTcxODc1LCJ5IjoxNjF9LHsieCI6MTM1Mi4zNTkzNzUsInkiOjE5OH0seyJ4IjoxMzUyLjM1OTM3NSwieSI6MjM1fSx7IngiOjQzMS4xODc1LCJ5IjoyODIuNzMzMTI1NzI5ODU2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_flowchart-v2-pointEnd)\"></path><path d=\"M1818.078,136L1819.38,140.167C1820.682,144.333,1823.286,152.667,1785.758,163C1748.229,173.333,1670.568,185.667,1631.737,198C1592.906,210.333,1592.906,222.667,1439.955,236.656C1287.003,250.645,981.101,266.291,828.149,274.114L675.198,281.936\" id=\"diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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=\"W3sieCI6MTgxOC4wNzgxMjUsInkiOjEzNn0seyJ4IjoxODI1Ljg5MDYyNSwieSI6MTYxfSx7IngiOjE1OTIuOTA2MjUsInkiOjE5OH0seyJ4IjoxNTkyLjkwNjI1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgyLjE0MDc5NTYxMDg0Njg1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea_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(1723.140625, 376)\"><g class=\"label\" data-id=\"L_lb_core_0\" transform=\"translate(-68.0078125, -12)\"><foreignObject width=\"136.015625\" 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(786.203125, 198)\"><g class=\"label\" data-id=\"L_v1_h1_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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(1193.265625, 198)\"><g class=\"label\" data-id=\"L_v1_h2_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1432.859375, 198)\"><g class=\"label\" data-id=\"L_v1_h3_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(949.984375, 198)\"><g class=\"label\" data-id=\"L_v2_h1_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1272.8125, 198)\"><g class=\"label\" data-id=\"L_v2_h2_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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(1513.359375, 198)\"><g class=\"label\" data-id=\"L_v2_h3_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1112.765625, 198)\"><g class=\"label\" data-id=\"L_v3_h1_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1352.359375, 198)\"><g class=\"label\" data-id=\"L_v3_h2_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1592.90625, 198)\"><g class=\"label\" data-id=\"L_v3_h3_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-core-0\" data-look=\"classic\" transform=\"translate(1723.140625, 465)\"><rect class=\"basic label-container\" style=\"\" x=\"-81.9140625\" y=\"-27\" width=\"163.828125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-51.9140625, -12)\"><rect></rect><foreignObject width=\"103.828125\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-lb-1\" data-look=\"classic\" transform=\"translate(1723.140625, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-110.90625\" y=\"-27\" width=\"221.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-80.90625, -12)\"><rect></rect><foreignObject width=\"161.8125\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-v1-2\" data-look=\"classic\" transform=\"translate(943.48046875, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.0078125\" y=\"-39\" width=\"158.015625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.0078125, -24)\"><rect></rect><foreignObject width=\"98.015625\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-v2-3\" data-look=\"classic\" transform=\"translate(1352.15625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-39\" width=\"155.0625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -24)\"><rect></rect><foreignObject width=\"95.0625\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-v3-4\" data-look=\"classic\" transform=\"translate(1805.890625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-87.265625\" y=\"-39\" width=\"174.53125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-57.265625, -24)\"><rect></rect><foreignObject width=\"114.53125\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-h1-5\" data-look=\"classic\" transform=\"translate(129.75, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.75\" y=\"-27\" width=\"173.5\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.75, -12)\"><rect></rect><foreignObject width=\"113.5\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-h2-6\" data-look=\"classic\" transform=\"translate(348.84375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.34375\" y=\"-27\" width=\"164.6875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.34375, -12)\"><rect></rect><foreignObject width=\"104.6875\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-flowchart-h3-7\" data-look=\"classic\" transform=\"translate(576.1953125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-95.0078125\" y=\"-27\" width=\"190.015625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-65.0078125, -12)\"><rect></rect><foreignObject width=\"130.015625\" 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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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-e2bfc5d3bb70d4fabcaa58603e9b2a43a7bebddda57b39fcaeee28f753e111ea-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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 2017.953125px;\" viewBox=\"0 0 2017.953125 525\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .error-icon{fill:#a44141;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .error-text{fill:#ddd;stroke:#ddd;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-thickness-normal{stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-thickness-thick{stroke-width:3.5px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-pattern-solid{stroke-dasharray:0;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .marker.cross{stroke:lightgrey;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 svg{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 p{margin:0;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .label{font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster-label text{fill:#F9FFFE;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster-label span{color:#F9FFFE;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster-label span p{background-color:transparent;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .label text,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 span{fill:#ccc;color:#ccc;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node rect,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node circle,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node ellipse,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node polygon,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .rough-node .label text,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node .label text,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .image-shape .label,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .icon-shape .label{text-anchor:middle;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .rough-node .label,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node .label,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .image-shape .label,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .icon-shape .label{text-align:center;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node.clickable{cursor:pointer;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .arrowheadPath{fill:lightgrey;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster text{fill:#F9FFFE;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .cluster span{color:#F9FFFE;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 rect.text{fill:none;stroke-width:0;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .icon-shape,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .icon-shape p,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .icon-shape .label rect,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 .node .neo-node{stroke:#ccc;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node rect,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].cluster rect,#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node polygon{stroke:url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node path{stroke:url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-gradient);stroke-width:1px;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node circle{stroke:url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-hsm\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"235\" width=\"698.203125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(300.890625, 235)\"><foreignObject width=\"112.421875\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>HSM HA Group</p></span></div></foreignObject></g></g><g class=\"cluster\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-cloud\" data-look=\"classic\"><rect style=\"\" x=\"726.203125\" y=\"8\" width=\"1283.75\" height=\"331\"></rect><g class=\"cluster-label\" transform=\"translate(1263.0234375, 8)\"><foreignObject width=\"210.109375\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-app\" data-look=\"classic\"><rect style=\"\" x=\"1606.2265625\" y=\"413\" width=\"233.828125\" height=\"104\"></rect><g class=\"cluster-label\" transform=\"translate(1658.9140625, 413)\"><foreignObject width=\"128.453125\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-az3\" data-look=\"classic\"><rect style=\"\" x=\"1484.6875\" y=\"33\" width=\"478.1171875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1707.46484375, 33)\"><foreignObject width=\"32.5625\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-az2\" data-look=\"classic\"><rect style=\"\" x=\"1239.625\" y=\"33\" width=\"225.0625\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(1335.875, 33)\"><foreignObject width=\"32.5625\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-az1\" data-look=\"classic\"><rect style=\"\" x=\"746.203125\" y=\"33\" width=\"473.421875\" height=\"128\"></rect><g class=\"cluster-label\" transform=\"translate(966.6328125, 33)\"><foreignObject width=\"32.5625\" 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=\"M1022.488,121.178L1044.177,127.815C1065.866,134.452,1109.243,147.726,1212.529,160.53C1315.815,173.333,1479.009,185.667,1560.606,198C1642.203,210.333,1642.203,222.667,1648.128,232.64C1654.052,242.613,1665.901,250.225,1671.826,254.032L1677.75,257.838\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTAyMi40ODgyODEyNSwieSI6MTIxLjE3NzUxMjE0MDQ1NTczfSx7IngiOjExNTIuNjIxMDkzNzUsInkiOjE2MX0seyJ4IjoxNjQyLjIwMzEyNSwieSI6MTk4fSx7IngiOjE2NDIuMjAzMTI1LCJ5IjoyMzV9LHsieCI6MTY4MS4xMTUzODQ2MTUzODQ1LCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1380.349,136L1383.361,140.167C1386.374,144.333,1392.398,152.667,1458.129,163C1523.859,173.333,1649.297,185.667,1712.016,198C1774.734,210.333,1774.734,222.667,1771.07,232.527C1767.405,242.387,1760.076,249.774,1756.412,253.467L1752.747,257.161\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTM4MC4zNDkzNjUyMzQzNzUsInkiOjEzNn0seyJ4IjoxMzk4LjQyMTg3NSwieSI6MTYxfSx7IngiOjE3NzQuNzM0Mzc1LCJ5IjoxOTh9LHsieCI6MTc3NC43MzQzNzUsInkiOjIzNX0seyJ4IjoxNzQ5LjkyOTY4NzUsInkiOjI2MH1d\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1858.164,136L1863.748,140.167C1869.333,144.333,1880.502,152.667,1886.087,163C1891.672,173.333,1891.672,185.667,1891.672,198C1891.672,210.333,1891.672,222.667,1878.805,232.803C1865.938,242.94,1840.204,250.88,1827.337,254.851L1814.469,258.821\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTg1OC4xNjM1NzQyMTg3NSwieSI6MTM2fSx7IngiOjE4OTEuNjcxODc1LCJ5IjoxNjF9LHsieCI6MTg5MS42NzE4NzUsInkiOjE5OH0seyJ4IjoxODkxLjY3MTg3NSwieSI6MjM1fSx7IngiOjE4MTAuNjQ3MjM1NTc2OTIzLCJ5IjoyNjB9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1723.141,314L1723.141,318.167C1723.141,322.333,1723.141,330.667,1723.141,341C1723.141,351.333,1723.141,363.667,1723.141,376C1723.141,388.333,1723.141,400.667,1723.141,410.333C1723.141,420,1723.141,427,1723.141,430.5L1723.141,434\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTcyMy4xNDA2MjUsInkiOjMxNH0seyJ4IjoxNzIzLjE0MDYyNSwieSI6MzM5fSx7IngiOjE3MjMuMTQwNjI1LCJ5IjozNzZ9LHsieCI6MTcyMy4xNDA2MjUsInkiOjQxM30seyJ4IjoxNzIzLjE0MDYyNSwieSI6NDM4fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M864.473,129.15L851.428,134.459C838.383,139.767,812.293,150.383,799.248,161.858C786.203,173.333,786.203,185.667,786.203,198C786.203,210.333,786.203,222.667,691.917,236.302C597.631,249.937,409.059,264.875,314.773,272.344L220.488,279.812\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6ODY0LjQ3MjY1NjI1LCJ5IjoxMjkuMTUwMjEyMzUzNzczOTV9LHsieCI6Nzg2LjIwMzEyNSwieSI6MTYxfSx7IngiOjc4Ni4yMDMxMjUsInkiOjE5OH0seyJ4Ijo3ODYuMjAzMTI1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4MC4xMjgyMjIyMTY5MzI4NH1d\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M921.952,136L919.652,140.167C917.352,144.333,912.752,152.667,957.971,163C1003.19,173.333,1098.228,185.667,1145.747,198C1193.266,210.333,1193.266,222.667,1066.918,236.614C940.57,250.561,687.875,266.122,561.528,273.903L435.18,281.683\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6OTIxLjk1MjM5MjU3ODEyNSwieSI6MTM2fSx7IngiOjkwOC4xNTIzNDM3NSwieSI6MTYxfSx7IngiOjExOTMuMjY1NjI1LCJ5IjoxOTh9LHsieCI6MTE5My4yNjU2MjUsInkiOjIzNX0seyJ4Ijo0MzEuMTg3NSwieSI6MjgxLjkyOTIyMzAyNjEwODg0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1001.047,136L1007.198,140.167C1013.348,144.333,1025.649,152.667,1097.617,163C1169.586,173.333,1301.223,185.667,1367.041,198C1432.859,210.333,1432.859,222.667,1306.582,236.498C1180.305,250.33,927.75,265.66,801.473,273.326L675.196,280.991\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTAwMS4wNDczNjMyODEyNSwieSI6MTM2fSx7IngiOjEwMzcuOTQ5MjE4NzUsInkiOjE2MX0seyJ4IjoxNDMyLjg1OTM3NSwieSI6MTk4fSx7IngiOjE0MzIuODU5Mzc1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgxLjIzMjk3MTI4MjEzNTQ1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1330.057,136L1327.696,140.167C1325.335,144.333,1320.613,152.667,1257.267,163C1193.922,173.333,1071.953,185.667,1010.969,198C949.984,210.333,949.984,222.667,828.402,236.541C706.82,250.416,463.656,265.832,342.074,273.539L220.492,281.247\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTMzMC4wNTY4ODQ3NjU2MjUsInkiOjEzNn0seyJ4IjoxMzE1Ljg5MDYyNSwieSI6MTYxfSx7IngiOjk0OS45ODQzNzUsInkiOjE5OH0seyJ4Ijo5NDkuOTg0Mzc1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4MS41MDAzNTI0MTQ1MTU2NX1d\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1352.156,136L1352.156,140.167C1352.156,144.333,1352.156,152.667,1338.932,163C1325.708,173.333,1299.26,185.667,1286.036,198C1272.813,210.333,1272.813,222.667,1133.207,236.69C993.602,250.714,714.392,266.427,574.786,274.284L435.181,282.141\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTM1Mi4xNTYyNSwieSI6MTM2fSx7IngiOjEzNTIuMTU2MjUsInkiOjE2MX0seyJ4IjoxMjcyLjgxMjUsInkiOjE5OH0seyJ4IjoxMjcyLjgxMjUsInkiOjIzNX0seyJ4Ijo0MzEuMTg3NSwieSI6MjgyLjM2NTc3OTQxNjI0MTF9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1364.344,136L1365.646,140.167C1366.948,144.333,1369.552,152.667,1394.388,163C1419.224,173.333,1466.292,185.667,1489.826,198C1513.359,210.333,1513.359,222.667,1373.666,236.584C1233.972,250.502,954.584,266.004,814.891,273.756L675.197,281.507\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTM2NC4zNDM3NSwieSI6MTM2fSx7IngiOjEzNzIuMTU2MjUsInkiOjE2MX0seyJ4IjoxNTEzLjM1OTM3NSwieSI6MTk4fSx7IngiOjE1MTMuMzU5Mzc1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgxLjcyODM0NDMyMzM4MjU0fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1718.625,120.264L1693.158,127.053C1667.69,133.843,1616.755,147.421,1515.779,160.377C1414.802,173.333,1263.784,185.667,1188.275,198C1112.766,210.333,1112.766,222.667,964.054,236.7C815.342,250.733,517.918,266.467,369.206,274.333L220.494,282.2\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTcxOC42MjUsInkiOjEyMC4yNjQwMTc3MDMxNDY4Nn0seyJ4IjoxNTY1LjgyMDMxMjUsInkiOjE2MX0seyJ4IjoxMTEyLjc2NTYyNSwieSI6MTk4fSx7IngiOjExMTIuNzY1NjI1LCJ5IjoyMzV9LHsieCI6MjE2LjUsInkiOjI4Mi40MTEwNTk3MTczODc1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1738.693,136L1731.513,140.167C1724.334,144.333,1709.976,152.667,1645.587,163C1581.198,173.333,1466.779,185.667,1409.569,198C1352.359,210.333,1352.359,222.667,1199.497,236.754C1046.634,250.842,740.908,266.684,588.045,274.605L435.182,282.526\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTczOC42OTI3NDkwMjM0Mzc1LCJ5IjoxMzZ9LHsieCI6MTY5NS42MTcxODc1LCJ5IjoxNjF9LHsieCI6MTM1Mi4zNTkzNzUsInkiOjE5OH0seyJ4IjoxMzUyLjM1OTM3NSwieSI6MjM1fSx7IngiOjQzMS4xODc1LCJ5IjoyODIuNzMzMTI1NzI5ODU2fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_flowchart-v2-pointEnd)\"></path><path d=\"M1818.078,136L1819.38,140.167C1820.682,144.333,1823.286,152.667,1785.758,163C1748.229,173.333,1670.568,185.667,1631.737,198C1592.906,210.333,1592.906,222.667,1439.955,236.656C1287.003,250.645,981.101,266.291,828.149,274.114L675.198,281.936\" id=\"diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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=\"W3sieCI6MTgxOC4wNzgxMjUsInkiOjEzNn0seyJ4IjoxODI1Ljg5MDYyNSwieSI6MTYxfSx7IngiOjE1OTIuOTA2MjUsInkiOjE5OH0seyJ4IjoxNTkyLjkwNjI1LCJ5IjoyMzV9LHsieCI6NjcxLjIwMzEyNSwieSI6MjgyLjE0MDc5NTYxMDg0Njg1fV0=\" data-look=\"classic\" marker-end=\"url(#diagram-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1_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(1723.140625, 376)\"><g class=\"label\" data-id=\"L_lb_core_0\" transform=\"translate(-68.0078125, -12)\"><foreignObject width=\"136.015625\" 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(786.203125, 198)\"><g class=\"label\" data-id=\"L_v1_h1_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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(1193.265625, 198)\"><g class=\"label\" data-id=\"L_v1_h2_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1432.859375, 198)\"><g class=\"label\" data-id=\"L_v1_h3_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(949.984375, 198)\"><g class=\"label\" data-id=\"L_v2_h1_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1272.8125, 198)\"><g class=\"label\" data-id=\"L_v2_h2_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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(1513.359375, 198)\"><g class=\"label\" data-id=\"L_v2_h3_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1112.765625, 198)\"><g class=\"label\" data-id=\"L_v3_h1_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1352.359375, 198)\"><g class=\"label\" data-id=\"L_v3_h2_0\" transform=\"translate(-30.25, -12)\"><foreignObject width=\"60.5\" 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(1592.90625, 198)\"><g class=\"label\" data-id=\"L_v3_h3_0\" transform=\"translate(-29.296875, -12)\"><foreignObject width=\"58.59375\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-core-0\" data-look=\"classic\" transform=\"translate(1723.140625, 465)\"><rect class=\"basic label-container\" style=\"\" x=\"-81.9140625\" y=\"-27\" width=\"163.828125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-51.9140625, -12)\"><rect></rect><foreignObject width=\"103.828125\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-lb-1\" data-look=\"classic\" transform=\"translate(1723.140625, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-110.90625\" y=\"-27\" width=\"221.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-80.90625, -12)\"><rect></rect><foreignObject width=\"161.8125\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-v1-2\" data-look=\"classic\" transform=\"translate(943.48046875, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.0078125\" y=\"-39\" width=\"158.015625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.0078125, -24)\"><rect></rect><foreignObject width=\"98.015625\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-v2-3\" data-look=\"classic\" transform=\"translate(1352.15625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-77.53125\" y=\"-39\" width=\"155.0625\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-47.53125, -24)\"><rect></rect><foreignObject width=\"95.0625\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-v3-4\" data-look=\"classic\" transform=\"translate(1805.890625, 97)\"><rect class=\"basic label-container\" style=\"\" x=\"-87.265625\" y=\"-39\" width=\"174.53125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-57.265625, -24)\"><rect></rect><foreignObject width=\"114.53125\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-h1-5\" data-look=\"classic\" transform=\"translate(129.75, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-86.75\" y=\"-27\" width=\"173.5\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-56.75, -12)\"><rect></rect><foreignObject width=\"113.5\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-h2-6\" data-look=\"classic\" transform=\"translate(348.84375, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-82.34375\" y=\"-27\" width=\"164.6875\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-52.34375, -12)\"><rect></rect><foreignObject width=\"104.6875\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-flowchart-h3-7\" data-look=\"classic\" transform=\"translate(576.1953125, 287)\"><rect class=\"basic label-container\" style=\"\" x=\"-95.0078125\" y=\"-27\" width=\"190.015625\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-65.0078125, -12)\"><rect></rect><foreignObject width=\"130.015625\" 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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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-78c9ce6afb2f20f00c256a0dff64c97b7a2cb16513379b58127e744a74aaf3d1-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/deployment/integrate-kms/on-premise-hsm/thales-luna"},"children":["Luna HSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/cloud-hsm/aws-cloudhsm"},"children":["AWS CloudHSM"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/deployment/integrate-kms/on-premise-hsm/ibm-linuxone"},"children":["IBM LinuxONE"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/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/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/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/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/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-08-04T20:25:11.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/deployment/planning/resilience","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}