Integrations

Webhooks, Infrastructure-as-Code, and CI/CD pipeline integration.

Webhook notifications

Configure webhooks from Settings → Webhooks to receive real-time notifications. Supported events:

  • <Code>migration.started</Code> — Fires when a migration begins processing
  • <Code>migration.completed</Code> — Fires when a migration finishes successfully
  • <Code>migration.failed</Code> — Fires when a migration encounters an error
  • <Code>cdc.error</Code> — CDC channel error (e.g., oplog disconnection)

Each payload includes event type, migration ID, status, timestamp, and metadata. Webhook delivery uses exponential back-off with up to 5 retries. URLs must use HTTPS.

Terraform provider

Manage connections and migrations as infrastructure-as-code:

resource "nosqlsync_connection" "source" {
  name   = "production-mongodb"
  type   = "source"
  db_type = "mongodb"
  uri    = var.mongo_uri
}

resource "nosqlsync_connection" "target" {
  name   = "analytics-pg"
  type   = "target"
  db_type = "postgresql"
  uri    = var.postgres_uri
}

resource "nosqlsync_migration" "users_sync" {
  name                = "users-to-postgres"
  source_connection_id = nosqlsync_connection.source.id
  target_connection_id = nosqlsync_connection.target.id
  mode                = "cdc"
}

Install via Terraform Registry or download from GitHub releases.

Docker & Kubernetes

Run NoSQLSync in Docker for local development or deploy as Kubernetes pods. The docker-compose file spins up Redis, MongoDB (replica set), PostgreSQL target, MySQL target, and the app:

docker compose up -d pnpm dev        # Next.js dev server pnpm worker     # BullMQ worker

For Kubernetes, deploy the web app and worker as separate deployments sharing the same Redis and PostgreSQL. Workers connect via internal service DNS.

CI/CD pipeline integration

Run migrations as part of your deployment pipeline using the API:

# GitHub Actions example
- name: Run database migration
  run: |
    curl -X POST https://app.nosqlsync.com/api/migrations \
      -H "Authorization: Bearer ${{ secrets.NOSQLSYNC_API_KEY }}" \
      -H "Content-Type: application/json" \
      -d '{"name":"deploy-${{ github.sha }}","sourceConnectionId":"...","mode":"one-time"}'

- name: Wait for migration
  run: |
    STATUS=$(curl -s -H "Authorization: Bearer ${{ secrets.NOSQLSYNC_API_KEY }}" \
      https://app.nosqlsync.com/api/migrations/$MIGRATION_ID | jq -r '.status')
    echo "Migration status: $STATUS"