
Introduction
Amazon Data Migration Service (DMS) was designed for database migration, not continuous Change Data Capture (CDC). Despite its name, many organizations attempt to use DMS for ongoing CDC replication, leading to operational headaches, data inconsistencies, and performance bottlenecks.
This article explores the technical limitations of DMS when used for CDC and highlights the significant advantages of modern architectures that should adopt purpose-built CDC solutions instead.
Understanding DMS: Built for Migration, Not CDC
AWS DMS was initially released in 2016 as a tool for migrating on-premises databases to AWS services like RDS, Aurora, DynamoDB, and Redshift. The key word here is "migration." Migration is a finite process—it happens once, and once completed, the source system is either decommissioned or temporarily kept running for validation.
DMS does offer CDC as a feature, but it’s not built for high-scale, long-term replication. Its architecture introduces limitations that make it unsuitable for continuous data streaming. Let’s explore why.
9 Critical Limitations of AWS DMS for Change Data Capture (CDC)
Alright, let's dive into nine reasons why DMS will be the bottleneck of your data stack.
1. Limited Source and Target Support
DMS is tightly coupled with AWS ecosystem services and requires using Virtual Private Cloud (VPC) networking for all database targets. This introduces unnecessary complexity and constraints for organizations with hybrid or multi-cloud architectures. Some of the key limitations include:
- DMS supports a limited set of source databases for CDC (PostgreSQL, MySQL, Oracle, SQL Server, and a few others).
- Destination options are mostly AWS-specific, limiting flexibility for organizations using Snowflake, Databricks, ClickHouse, or other data platforms.
- Specific cross-region migrations, such as DynamoDB replication across AWS regions, are not supported.
This makes DMS unsuitable for organizations with diverse data infrastructure needs.
2. Inefficient Initial Full Load and CDC Handling
DMS follows an outdated pattern for initial full loads and change replication, reminiscent of older Attunity-based architectures:
- When starting a new replication task, DMS performs a full load of all tables at a point in time.
- Changes that occur during the initial full load are cached and applied after the full load is completed.
- This method requires table locks on the source database, which can cause severe performance issues in production environments.
This approach is impractical for large, high-throughput databases where locking tables for long periods is not an option.
3. Replication Slot Mismanagement in PostgreSQL
PostgreSQL-based sources require replication slots to track CDC changes. With DMS, if replication slots are not properly managed, this can lead to transaction log bloat—a common issue in which WAL (Write-Ahead Log) files accumulate indefinitely, potentially causing storage exhaustion and database crashes.
In an ideal CDC solution, replication slots should be intelligently managed with:
- Automatic checkpointing to ensure old WAL segments are removed.
- The ability to pause and resume replication without blocking transactions.
DMS lacks these capabilities, making it risky to use in production for PostgreSQL CDC.
4. Severe Scalability Constraints
DMS has strict resource limits on its replication instances:
- A maximum of 100GB memory per replication instance makes handling large datasets difficult.
- Performance bottlenecks when replicating high-velocity change streams.
- Requires manual partitioning for large tables, which adds operational overhead.
Modern CDC systems like Debezium or Estuary Flow handle scale much more effectively with:
- Horizontal scaling across multiple workers.
- Efficient compression and batching for log storage.
- Cloud-native event-driven architectures that scale elastically.
5. Operational Complexity and Monitoring Gaps
DMS lacks detailed observability tools for debugging and monitoring CDC replication. Common operational issues include:
- Silent failures: DMS tasks can fail or stall without clear error messages.
- Complex troubleshooting: Logs are not centralized and require manual digging across AWS services.
- No built-in schema evolution support: Any schema changes must be handled manually or require task restarts.
A production-grade CDC solution must provide the following:
- Real-time monitoring with clear failure alerts.
- Built-in schema drift detection and automatic handling of column changes.
- Granular logging to identify performance bottlenecks.
DMS includes none natively, increasing the operational burden on engineering teams.
6. High AWS Data Transfer Costs
DMS replication involves moving data between AWS services, incurring significant costs due to:
- Cross-AZ network transfers when replicating between availability zones.
- Egress fees when sending data outside of AWS.
- Storage costs for keeping intermediate logs in S3 or other AWS services.
A more efficient CDC solution should allow:
- Hybrid cloud replication without lock-in.
- Cost-efficient storage options like Parquet-based object storage.
- Low-latency streaming without excessive data duplication.
7. No Flexible Replay Mechanism
One of the most critical features missing from DMS is the ability to replay historical changes without reloading the entire dataset. This is essential for:
- Backfilling historical data into a new analytics system.
- Replaying a CDC stream after a temporary outage.
- Debugging issues by reprocessing old events.
DMS requires manually restarting tasks to replay data, which is inefficient and can lead to downtime. Modern CDC architectures allow:
- Time-travel queries on log data.
- Granular checkpointing to resume from any point in time.
- On-demand historical replays without affecting source databases.
8. Frequent Task Failures and Restart Requirements
DMS tasks frequently fail due to memory exhaustion, database connectivity issues, or AWS service throttling. When failures occur:
- Manual intervention is often required to restart tasks.
- Data loss risks increase if failure recovery isn’t handled correctly.
- Replication lag grows, leading to stale downstream data.
Production CDC systems must be resilient to failures, providing automatic recovery and high availability. DMS lacks these capabilities, making it unreliable for critical workloads.
9. Lack of Full Administrative Control on AWS RDS
DMS users migrating to AWS RDS face additional limitations:
- No full admin or console access, limiting the ability to configure settings.
- Inability to execute custom SSIS packages or scripts.
- Storage limitations require instance re-creation to reduce allocated space.
Real-World Example: PostgreSQL WAL Bloat Issue Due to DMS
A large fintech company attempted to use DMS for real-time PostgreSQL replication but encountered critical failures:
- The DMS replication slot was not properly managed, causing WAL files to grow uncontrollably.
- The database ran out of storage, requiring emergency intervention.
- Restarting DMS caused a full table reload, increasing downtime to several hours.
Better Alternatives to AWS DMS for CDC
Instead of relying on DMS, organizations should adopt CDC solutions designed for modern data architectures. Two popular alternatives include:
1. Debezium + Kafka + Cloud Storage
This open-source architecture provides robust CDC capabilities with the following:
- Debezium for log-based change capture.
- Kafka for scalable message streaming.
- Cloud storage (S3, GCS) for durable log retention and replay.
2. Estuary Flow: A Fully Managed CDC Platform
Estuary Flow simplifies CDC replication with the following:
- Automated backfills and schema evolution.
- Low-latency streaming and durable storage.
- Replay capabilities for data consistency and auditing.
Why Estuary Flow is the Best AWS DMS Alternative
Feature | AWS DMS | Estuary Flow |
---|---|---|
Schema Evolution | ❌ Manual Restarts Required | ✅ Automatic, Zero Downtime |
Backfills | ❌ Requires Full Reload | ✅ Seamless & Efficient |
Multi-Cloud Support | ❌ AWS-Locked | ✅ Any Cloud, Any Database |
Real-Time Streaming | ❌ High Latency | ✅ Millisecond Latency |
Cost Efficiency | ❌ High AWS Fees | ✅ Optimized for Low Cost |
Don’t let AWS DMS bottleneck your data strategy. Start your free trial with Estuary Flow and unlock seamless real-time CDC today!
Conclusion: Avoid AWS DMS for Continuous CDC
AWS DMS is not a viable long-term CDC solution due to its rigid architecture, operational complexities, and lack of scalability. Organizations looking for reliable CDC replication should consider event-driven architectures like Debezium with Kafka or fully managed solutions like Estuary Flow.
By choosing the right CDC strategy, enterprises can ensure:
- Real-time data replication.
- Data integrity across platforms.
- Seamless integration into multi-cloud ecosystems.
Avoid using DMS for CDC—it’s a migration tool, not a CDC platform.

About the author
Dani is a data professional with a rich background in data engineering and real-time data platforms. At Estuary, Daniel focuses on promoting cutting-edge streaming solutions, helping to bridge the gap between technical innovation and developer adoption. With deep expertise in cloud-native and streaming technologies, Dani has successfully supported startups and enterprises in building robust data solutions.
Popular Articles
