# Clone Concepts

* [Clone Entities](#replication-entities)
* [Clone Actions](#replication-actions)
* [Clone states](#replication-states)
* [Table states](#table-states)
* [Metrics](#metrics)
* [Components](#components)
* [Connectivity](#connectivity)

### Clone Entities <a href="#replication-entities" id="replication-entities"></a>

| Concept                | Description                                                                                                                               |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Cloning                | A feature of Algoreus that allows for continuous low-latency data replication from operational data stores to analytical data warehouses. |
| Source                 | A node that reads changes from a database, table, or column and makes them available for processing in a Cloning job.                     |
| Target                 | A node that writes changes received from a source into a target database.                                                                 |
| Source properties      | Configurations for the source, including connection details, source database and table names, credentials, and other properties.          |
| Target properties      | Configurations for the target, including connection details, target database and table names, credentials, and other properties.          |
| Cloning Job properties | Configurations for Cloning job including failure thresholds, staging areas, notifications, and validation settings.                       |
| Transformations        | Implicit transformations such as column filtering and in-flight transformations such as masking fields and renaming columns.              |
| Draft                  | A saved, partially completed Cloning job.                                                                                                 |
| Events                 | Changes in the source that are to be cloned to the target.                                                                                |
| Insert                 | Addition of new records in the source.                                                                                                    |
| Update                 | Updates to existing records in the source.                                                                                                |
| Delete                 | Removal of existing records in the source.                                                                                                |
| Logs                   | The operational logs of a Cloning job.                                                                                                    |
| Cloning Job detail     | A detail page with Cloning job information.                                                                                               |
| Dashboard              | A page that lists the state of all change data capture activities.                                                                        |

***

### Clone Actions <a href="#replication-actions" id="replication-actions"></a>

| Concept   | Description                                                                          |
| --------- | ------------------------------------------------------------------------------------ |
| Deploy    | Creating a new Cloning job by specifying a source, target, and their configuration.  |
| Refresh   | Validating a Cloning transformation.                                                 |
| Save      | Saving a partially created Cloning job.                                              |
| Delete    | Deleting an existing Cloning job.                                                    |
| Start     | Starting a Cloning job.                                                              |
| Stop      | Stopping a Cloning job.                                                              |
| View logs | Viewing logs of a Cloning job.                                                       |
| Search    | Searching for a Cloning job by its name, description, or other Cloning job metadata. |
| Assess    | Assessing the impact of Cloning prior to starting Cloning.                           |

***

### Clone states <a href="#replication-states" id="replication-states"></a>

| Concept  | Description                                                         |
| -------- | ------------------------------------------------------------------- |
| Deployed | The Cloning job is deployed, but not started.                       |
| Starting | The Cloning job is initializing, and is not ready to Clone changes. |
| Running  | The Cloning job is started, and is Cloning changes.                 |
| Stopping | The Cloning job is stopping.                                        |
| Stopped  | The Cloning job is stopped.                                         |
| Failed   | The Cloning job failed due to critical errors.                      |

***

### Table states <a href="#table-states" id="table-states"></a>

| Concept      | Description                                                                                    |
| ------------ | ---------------------------------------------------------------------------------------------- |
| Snapshotting | The Cloning job is taking a snapshot of the current state of the table prior to clone changes. |
| Cloning      | The Cloning job is cloning changes from the source table into the destination table.           |
| Failing      | The Cloning job is failing to clone changes from the source table due to error.                |

***

### Metrics <a href="#metrics" id="metrics"></a>

| Concept    | Description                                                                                    |
| ---------- | ---------------------------------------------------------------------------------------------- |
| Inserts    | The number of inserts applied to the target in the selected time period.                       |
| Updates    | The number of updates applied to the target in the selected time period.                       |
| Deletes    | The number of deletes applied to the target in the selected time period.                       |
| Throughput | The number of events and the number of bytes cloned to the target in the selected time period. |
| Latency    | The delay at which data is cloned to the target in the selected time period.                   |

***

### Components <a href="#components" id="components"></a>

| Component                 | Description                                                                           |
| ------------------------- | ------------------------------------------------------------------------------------- |
| Service                   | Supervises the end-to-end orchestration of Cloning jobs.                              |
| State Management          | Manages the state of each Cloning job in a Cloud Storage bucket.                      |
| Execution                 | Clusters provide the execution environment of Cloning jobs.                           |
| Source Database           | Your production operational database that clones into your target database.           |
| Change Tracking Mechanism | Algoreus relies on a change tracking solution to read changes in the source database. |
| Target Database           | The destination location for Cloning and analysis.                                    |
| Authentication            | Varies according to the source database or change tracking software.                  |

***

### Connectivity <a href="#connectivity" id="connectivity"></a>

| From            | To        | Optional | Protocol                                         | Network                                              | Auth Security | Purpose                                                                              |
| --------------- | --------- | -------- | ------------------------------------------------ | ---------------------------------------------------- | ------------- | ------------------------------------------------------------------------------------ |
| Cloning Service | Source DB | Yes      | Depends on Source. JDBC for direct DB connection | Peering + Firewall rules + VPN/Interconnect + Router | DB Login      | Needed at design time only, not execution time.                                      |
| Delta Service   | Cloud     | No       | Cloud API                                        | VPC-SC                                               | IAM           | State Management                                                                     |
| Cluster         | Source DB | No       | Depends on Source. JDBC for direct DB connection | Peering + Firewall rules + VPN/Interconnect + Router | DB Login      | Needed at execution time, for reading changes from source DB to clone them to target |
| Cluster         | Cloud     | No       | Cloud API                                        | VPC-SC                                               | IAM           | State Management                                                                     |
| Cluster         | BigQuery  | No       | Cloud API                                        | VPC-SC                                               | IAM           | Needed at execution time, for applying changes from the source DB to the target      |

***
