# Scalable Deployment

## Overview

While a single dsync already packs a powerhouse in single-binary format, it's not perfectly suitable for all use cases. For example:

* Large and Very large database migrations (100GB to 100TB and beyond)
* Moving or replicating data within a fleet of database instances (data mobility)

For these and other use cases, we have developed a horizontally scalable deployment using [Temporal](https://temporal.io/) durable execution platform as an external Coordinator and individual dsync's as workers.

This Enterprise deployment offers scalability, flexibility, and additional observability on top of Open Source dsync.

## Topology

<figure><img src="https://1578314963-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FC1ZH7dsksboQHxNwC4zF%2Fuploads%2F0bL9iscKwfre0Flmd3Pw%2Fimage.png?alt=media&#x26;token=e686a3bc-f276-4e21-b27b-01f8cd58841a" alt=""><figcaption></figcaption></figure>

## Components

1. [Temporal](https://temporal.io/) durable workflow execution engine
   * Coordinates workflows and assigns tasks to workers
   * Handles resumability and retries on the task level, maintains state
2. [SigNoz](https://signoz.io/) observability tool
   * Logs and metrics collector (OpenTelemetry)
   * Advanced dashboards
3. [Dsynct](https://github.com/adiom-data/public/dsynct)
   * Worker processes: `dsynct worker`
   * Runner: `dsynct run`
     * Initiates a new workflow (or connects to existing one)
     * Serves real-time web progress dashboard over HTTP

## How it works

In this configuration, each worker is a standalone dsync process with its own connectors and [transformer](https://docs.adiom.io/basics/features#transformations) instances. A migration or replication job is structured as a Temporal workflow, including tasks for Read Planning, Initial Data Copy, and CDC. When a job is submitted to Temporal, individual tasks are allocated to dsync workers based on their suitability and availability, allowing for a high degree of parallelization.

Temporal stores the job metadata and makes task execution durable. Should a worker or a task fail, Temporal will automatically reallocate the task to the next available worker.

## Distribution

The Enterprise version of dsync is distributed under Commercial License that allows for a free trial period.

To download and run this configuration, you can use docker containers or Kubernetes charts: <https://github.com/adiom-data/public>.

We also have modified versions of Kubernetes charts available for Azure, Google, and AWS services.

Contact us at <info@adiom.io> if you're interested and want to know more.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.adiom.io/enterprise/scalable-deployment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
