Skip to content

Commit

Permalink
remove unfinished sentence
Browse files Browse the repository at this point in the history
  • Loading branch information
djelusic committed Dec 29, 2021
1 parent 82ad06f commit 2dee4b0
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion docs/data_storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ For more information about DynamoDB, please refer to the official [developer gui
Relational databases are often the first choice for developers. They make data modelling easier since most data fits nicely in a relational model. They also allow for more flexible data access patterns which means that you don't have to anticipate how your data will be accessed in advance. Scalability is also usually not an issue since sharding and read replicas can go a long way. There are also plenty of fully managed RDBMS solutions like Amazon's RDS and Aurora services.

However, when trying to fit relational databases into a serverless workflow you might run into some issues:
- they are usually connection-based, which can be an issue when using them with lambda functions as they can create a large number of connections during usage peaks. This will cause slowdowns since relational databases are usually designed to support a limited number of persistent connections. You can mitigate this by implementing a connection pooling solution or using a managed database proxy like [RDS Proxy](https://aws.amazon.com/rds/proxy/) which will handle connection management, security and reduce failover times. There are also
- they are usually connection-based, which can be an issue when using them with lambda functions as they can create a large number of connections during usage peaks. This will cause slowdowns since relational databases are usually designed to support a limited number of persistent connections. You can mitigate this by implementing a connection pooling solution or using a managed database proxy like [RDS Proxy](https://aws.amazon.com/rds/proxy/) which will handle connection management, security and reduce failover times.
- they don't offer a pay-per-use billing model, instead you will usually pay an hourly rate based on instance size

One option worth mentioning here is [Aurora Serverless](https://aws.amazon.com/rds/aurora/serverless/) which is Amazon's serverless offering for their MySQL and PostgreSQL-compatible database [Aurora](https://aws.amazon.com/rds/aurora/). It offers an HTTP-based [Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) which doesn't require a persistent connection. It also scales capacity automatically which can reduce costs if database usage is unpredictable. There is however a minimum number of capacity units that need to be provisioned at all times which means that even if the database is not used there will be a minimum hourly cost.
Expand Down

0 comments on commit 2dee4b0

Please sign in to comment.