I’m trying to understand DynamoDB replication & failover strategies but do not find any articles on the web which clarifies them. I understand cross-region replication can be achieved by DynamoDB with Global Tables but I also understand this is a multi-active table setup, meaning there are multiple active tables and multiple replica table. Is there a setup with single-active table and multiple replicas? I briefly read about this in this article but do not find any mentions anywhere else including AWS documentation.
I’m also trying to understand failover strategies for both cases – Is there a DynamoDB Java Client which can failover across AZs in case of issues in one AZ for both reads & writes?
2
Answers
Unfortunately there is no such single active and multiple replica setup for cross region in dynamodb using global tables, so failover strategy will be for multiple active tables and multiple replica tables! – Source – docs
Fro failover strategies
According to docs
This means this is seamingless smooth process which happends by default ofcourse you can add custom logic when to redirect
DynamoDB Global Tables are always active-active but you can treat it as active-passive if you prefer. Many people do. That’s useful if you want to use features like condition expressions, transactions, or do any non-idempotent wheres where you could have the same item being written around the same time in both regions with the second write happening before the first replicates, because this would cause the first write to be effectively lost.
To do this you just route your write traffic to one region, and to failover you decide when it’s time to write to another. The failover region is always happy to be an active region if you’ll let it.
As for AZs, DynamoDB is a regional service meaning it crosses at least 3 AZs always and would keep operating fine even if a full AZ were to be down. You don’t have to worry about that.