High Availability
Overview
High Availability (HA) is TAKAKRYPT's ability to keep services available even when a disruption occurs on one of the servers or nodes.
This feature works by connecting several nodes into a single cluster and automatically synchronizing data between the nodes. As a result, services can continue to run and data remains consistent across all nodes in the cluster.
High Availability in TAKAKRYPT provides the following benefits:
- Keeps services available when a disruption occurs on one of the nodes.
- Provides data redundancy between nodes.
- Supports gradual system growth through the addition of new nodes.
- Helps make the service recovery process faster.
High Availability Architecture
TAKAKRYPT uses a cluster architecture, namely several nodes that are interconnected and work as a single system.
Each node has the same services and can receive and process data. When there is a data change on one node, that change is sent to the other nodes so that all nodes continue to have the same data.
┌──────────────┐
│ Client │
└──────┬───────┘
│
▼
┌──────────────────────┐
│ Gateway │
│ Load Balancer │
└─────────┬────────────┘
│
┌──────────────────┴──────────────────┐
│ │
▼ ▼
┌───────────────────┐ ┌───────────────────┐
│ Node A │ │ Node B │
│ Primary │ │ Secondary │
├───────────────────┤ ├───────────────────┤
│ Authentication │ │ Authentication │
│ Cryptography │ ◄──────────► │ Cryptography │
│ Tokenization │ Replication │ Tokenization │
│ Data Masking │ │ Data Masking │
│ Lock Management │ │ Lock Management │
│ Backup │ │ Backup │
│ Notification │ │ Notification │
├───────────────────┤ ├───────────────────┤
│ Dispatch Service │ ◄──────────► │ Dispatch Service │
│ JetStream Storage │ │ JetStream Storage │
└───────────────────┘ └───────────────────┘
Main Components
1. Gateway
The Gateway serves as the main entry point for users and external applications. This component forwards requests to the appropriate services and provides access for cluster management.
2. Backend Services
Backend Services are the main services that run TAKAKRYPT's functions, such as:
- Authentication
- Cryptography
- Lock Management
- Tokenization
- Data Masking
- Backup
- Notification
3. Dispatch Service
The Dispatch Service is responsible for connecting all nodes in the cluster and distributing data changes between nodes. This component ensures that the synchronization process runs in an orderly and consistent manner.
4. JetStream Storage
JetStream is used as a temporary storage medium for synchronization data. With this mechanism, data that has not yet been received by other nodes remains stored and can be resent once the connection returns to normal.
Data Replication
Data Replication Concept
Data Replication is the process of synchronizing data between nodes in the cluster.
When there is a data change on one node, the system creates information about that change and sends it to the other nodes. In this way, all nodes can have the same data and configuration.
Replication Flow
The process is as follows:
- Data is saved on the node where the change is made.
- The system creates the data change information.
- That information is sent through the Dispatch Service.
- The other nodes receive and apply the change.
This process runs automatically in the background without affecting day-to-day use of the application.
Services That Support Replication
Data replication is applied to several main services, including:
- Authentication
- Cryptography
- Lock Management
- Tokenization
- Data Masking
- Backup
- Notification
As a result, configurations remain consistent across all nodes in the cluster.
Cluster Topology
Nodes in the Cluster
Each server that is part of the HA setup is referred to as a node. Within the cluster, a node can be in the following states:
- Local Node: the node on which the main services are running
- Connected Node: a node that is connected and active in the cluster
- Down Node: a node that is registered but currently cannot be accessed
Cluster Health
The system displays the cluster condition based on the status of the available nodes:
- Healthy: all nodes are connected and running normally
- Degraded: some nodes are experiencing disruptions, but the services are still running
- Unhealthy: most nodes are unavailable, which affects the cluster condition