Amazon DynamoDB

Application and Data / Data Stores / NoSQL Database as a Service
Avatar of praveenm
Engineering Manager at Taylor and Francis

We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

To build #Webapps we decided to use Angular 2 with RxJS

#Devops - GitHub , Travis CI , Terraform , Docker , Serverless

13 upvotes1.5M views
Avatar of undefined

Hi, I am using Microsoft SQL Server with MVC application and wanted to migrate the database from SQL Server to Amazon DynamoDB. I was wondering:

Is Dynamo DB feasible with a Dot.Net application? Do we store SQL DB dump file into DynamoDB directly or do we have any third-party tools in the market to restore SQL dump in Dynamo DB? Does Dynamo Db support replication?

Please let me know your answer.

5 upvotes13K views
Replies (3)

Since you are in a .NET environment; it would possibly be easier to work with SQL Server.

On the other hand your question can't be answered that easily. It depends on how your data is structured or how you planning on structuring it.

SQL Server being a relational database, and DynamoDB being a document based database, both have fundamental differences in how you store and retrieve your data, so this needs to be a consideration in your design.

I'd also like to mention that SQL Server is a server; as to DynamoDB which is a service; replication, scaling, backup all come built in and since it's a managed service, it usually doesn't need your consideration to set this up, it'll just work; costs on DynamoDB might also be something to consider; you pay as you go might be cheap to start with, but might end up being expensive if your application scales; properly defining your reads and writes is a must to keep that in control.

6 upvotes525 views

AWS DynomoDB isn't just a different vendor, it's a completely different database architecture. Its a NoSQL database similar to MongoDB. There is no referencial integrity and will require you to redesign your database to be efficient as a NoSQL database. C# isn't just build for MsSQL server. Most databases will have driver support for . NET. DynomoDB has a AmazonDynamoDBClient for .NET. Moving between vendors you might find some tools to help but moving between different

5 upvotes502 views
View all (3)

From a StackShare Community member: "We鈥檙e debating going with Amazon RDS for PostgreSQL or Amazon DynamoDB. Cost is our main concern but we鈥檙e also curious about other potential benefits/differences. Which one would you recommend and why?"

3 upvotes2.3K views
Replies (5)

Amazon RDS for PostgreSQL or Amazon DynamoDB? If you need to follow RDBS concepts choose Amazon RDS (PostgreSQL). This choice will guarantee a stable relational database with a great support for years from PostgreSQL Global Development Group. But, you need a great scalable NoSQL database. You can use Amazon DynamoDB. The most important thing about this is that you can use RESTful HTTP API to access data.

6 upvotes9K views
Avatar of Dutzu
Solution Architect
Amazon DynamoDB

I use Amazon DynamoDB because it integrates seamlessly with other AWS SaaS solutions and if cost is the primary concern early on, then this will be a better choice when compared to AWS RDS or any other solution that requires the creation of a HA cluster of IaaS components that will cost money just for being there, the costs not being influenced primarily by usage.

6 upvotes514 views
View all (5)

Need thoughts of which services to use either Amazon DynamoDB or Azure Cosmos DB. I'm more interested in performance comparision between these tools

1 upvote8.9K views
Avatar of arthurboghossian
DevOps Engineer at PlayAsYouGo

For our Compute services, we decided to use AWS Lambda as it is perfect for quick executions (perfect for a bot), is serverless, and is required by Amazon Lex, which we will use as the framework for our bot. We chose Amazon Lex as it integrates well with other #AWS services and uses the same technology as Alexa. This will give customers the ability to purchase licenses through their Alexa device. We chose Amazon DynamoDB to store customer information as it is a noSQL database, has high performance, and highly available. If we decide to train our own models for license recommendation we will either use Amazon SageMaker or Amazon EC2 with AWS Elastic Load Balancing (ELB) and AWS ASG as they are ideal for model training and inference.

3 upvotes13.8K views
Avatar of undefined
Avatar of deepshah22
Software Engineer at Amazon

I only know Java and so thinking of building a web application in the following order. I need some help on what alternatives I can choose. Open to replace components, services, or infrastructure.

  • Frontend: AngularJS, Bootstrap
  • Web Framework: Spring Boot
  • Database: Amazon DynamoDB
  • Authentication: Auth0
  • Deployment: Amazon EC2 Container Service
  • Local Testing: Docker
  • Marketing: Mailchimp (Separately Export from Auth0)
  • Website Domain: GoDaddy
  • Routing: Amazon Route 53

PS: Open to exploring options of going completely native ( AWS Lambda, AWS Security but have to learn all)

5 upvotes24.5K views
Replies (2)
Avatar of plakhlani
Founder and CEO at Facile Technolab Pvt Ltd

I would recommend to upgrade your stack and consider Angular.

Also, if you are working with docker, instead of manually managing your EC2 and docker inside it, switch to ECS as its free of cost and hassle free way to deploy and keep running your containers efficiently.

Good luck.

4 upvotes4.3K views

Instead of Docker , no doubt its great but it has vulnerabilitis and restricitions with dameon and root thread. I would pickup Podman. Also Ambasador is a culmination of Gateway LB and ServiceMesh on istio and Envoy. Great for both East-west and North south microservices communication, policy managment and security with Istio. Spring Boot is not a WebFW. For platform web fw one can use Reactive like SPring WebFlow rather than Spring MVC. For java experience, Spring provides great assets.

I will switch to using Kubernetes whether managed or custom depends on several factors rather than AWS ecs. For LB Amabassador is a great alternative on AWS. One can simply use this on top of ECS clusters. Instead of running in to different frameworks one can simply use one FW at both client and server side for consuming and SSE. I believe one can look at Lot of it depends what you need a full FW or a light librarry like React to be part of V in your MVC. Whether you need a SPA , on Mobile etc... in that case KOTLIN is also another option on Java. Dont go with Android. Best luck. Swapnil S

3 upvotes3.2K views

We are building a social media app, where users will post images, like their post, and make friends based on their interest. We are currently using Cloud Firestore and Firebase Realtime Database. We are looking for another database like Amazon DynamoDB; how much this decision can be efficient in terms of pricing and overhead?

5 upvotes22.8K views
Replies (1)
Avatar of williamfrank6774
Data Science and Engineering at GeistM

Hi, Akash,

I wouldn't make this decision without lots more information. Cloud Firestore has a much richer metamodel (document-oriented) than Dynamo (key-value), and Dynamo seems to be particularly restrictive. That is why it is so fast. There are many needs in most applications to get lightning access to the members of a set, one set at a time. Dynamo DB is a great choice. But, social media applications generally need to be able to make long traverses across a graph. While you can make almost any metamodel act like another one, with your own custom layers on top of it, or just by writing a lot more code, it's a long way around to do that with simple key-value sets. It's hard enough to traverse across networks of collections in a document-oriented database. So, if you are moving, I think a graph-oriented database like Amazon Neptune, or, if you might want built-in reasoning, Allegro or Ontotext, would take the least programming, which is where the most cost and bugs can be avoided. Also, managed systems are also less costly in terms of people's time and system errors. It's easier to measure the costs of managed systems, so they are often seen as more costly.

1 upvote14.5K views