Integrations
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"