# Source-target matrix — one mover

Use with [Glue Zero-ETL vs DMS vs Firehose vs AppFlow](https://www.factualminds.com/blog/glue-zero-etl-vs-dms-vs-firehose-vs-appflow/). One source object per row. Two movers on a row is a defect.

Re-check the Glue Zero-ETL source page in the week you build. As of 4 October 2026, self-managed Oracle, SQL Server, MySQL, and PostgreSQL replicate only to Redshift. Firehose database-as-a-source was removed on 24 September 2025. Direct PUT into Iceberg is 5 MiB/s in us-east-1, us-west-2, and eu-west-1, and 1 MiB/s elsewhere.

If the target is Aurora, move the row to the DMS playbook. If the warehouse is already Redshift, move the row to the Redshift playbook.

| Source | Source class (DynamoDB / Oracle at AWS / Glue SaaS / self-managed DB / stream / other SaaS) | Target | Legal Glue pair? (yes / no / re-check) | Mover (one) | Second mover to delete |
| --- | --- | --- | --- | --- | --- |
| | | | | | |

## Allowed pairs (confirm live)

| Source class | Target | Mover |
| --- | --- | --- |
| DynamoDB, Oracle at AWS, Glue-listed SaaS | S3 Tables, SageMaker-lakehouse S3, or Redshift | Glue Zero-ETL |
| Self-managed Oracle, SQL Server, MySQL, PostgreSQL | Redshift only | Glue Zero-ETL |
| Database that must land in S3 or S3 Tables | S3, then the lake | DMS |
| Kinesis, logs, Direct PUT | S3, Iceberg, S3 Tables, Redshift | Firehose (not database CDC) |
| SaaS Glue does not list | S3, Redshift, Snowflake, or another AppFlow destination | AppFlow |

AppFlow is not deprecated. Prefer Zero-ETL when both the source and the target are on the Glue list.
