Amazon DynamoDB is well-suited for scenarios requiring high-speed, scalable data access, such as e-commerce platforms, mobile apps, and real-time analytics. It excels in use cases with variable workloads and unpredictable traffic. However, for complex querying or applications reliant on complex transactions, traditional SQL databases might be more appropriate due to DynamoDB's limited querying capabilities
Google Cloud Spanner is suited for limitless horizontal scaling while maintaining strong consistency which needs to support ACID. NoSQL databases work in scaling but no ACID support. RDBMS support ACID, but horizontal scaling is not as great. The API it provides result in some limitations to related areas of the code, such as connection pools or database linking framework. So high # of connection pools can vary.
It's core to our business, we couldn't survive without it. We use it to drive everything from FTP logins to processing stories and delivering them to clients. It's reliable and easy to query from all of our pipeline services. Integration with things like AWS Lambda makes it easy to trigger events and run code whenever something changes in the database.
Functionally, DynamoDB has the features needed to use it. The interface is not as easy to use, which impacts its usability. Being familiar with AWS in general is helpful in understanding the interface, however it would be better if the interface more closely aligned with traditional tools for managing datastores.
I'm not sure about using it outside the Us-east-1 and us-west-1 as most of my clients are based in that geographical location, but I have heard through some colleagues that it works seamlessly all over whether it is middle east or Singapore region. However when we scale it in the us-east-1 region it works like a charm
DynamoDB offers strong consistency, more fine-grained control over read and write capacities, and integrates seamlessly with other AWS services. DynamoDB is designed for horizontal scalability and high throughput, making it a better choice for applications with rapidly changing workloads.
At that point, we were looking at something [that] can hold our relational database, [...] provide stable connection, and maintain high ACID transition. BigTable is for nonrelational database so it was out of our [sight] very quickly. BigQuery is a data warehouse that can hold huge amount of data but not ideal for transition. AWS RDS is [...] similar to Spanner but because most of our services are already on GCP, so we went with Spanner.
I have taken one point away due to its size limits. In case the application requires queries, it becomes really complicated to read and write data. When it comes to extremely large data sets such as the case in my company, a third-party logistics company, where huge amount of data is generated on a daily basis, even though the scalability is good, it becomes difficult to manage all the data due to limits.
Some developers see DynamoDB and try to fit problems to it, instead of picking the best solution for a given problem. This is true of any newer tool that people are trying to adopt.
It has allowed us to add more scalability to some of our systems.
As with any new technology there was a ramp up/rework phase as we learned best practices.