Skip to main content

Compare

In this chapter, we will compare Upstash with alternative cloud based solutions.

AWS ElastiCache

  • Serverless Pricing: Elasticache does not have a serverless pricing model. The price does not scale to zero. You need to pay for the instances even when you do not use them. Upstash charges per request.
  • REST API: Unlike ElastiCache, Upstash has a built-in REST API, so you can access from environments where TCP connections are not allowed such as edge functions at Cloudflare Workers.
  • Access: Elasticache is designed to be used inside AWS VPC. You can access Upstash from anywhere.
  • Durability: Upstash persists your data to the block storage in addition to memory so you can use it as your primary database.

AWS MemoryDB

  • Serverless Pricing: Just like Elasticache, MemoryDB does not have a serverless pricing model. The price does not scale to zero indeed the cheapest instance costs more than $200 per month. You need to pay for the instances even when you do not use them. Upstash charges per request, you do not pay if you are not using your Redis database.
  • REST API: Unlike MemoryDB, Upstash has a built-in REST API, so you can access from environments where TCP connections are not allowed such as edge functions at Cloudflare Workers.
  • Access: MemoryDB is designed to be used inside AWS VPC. You can access Upstash from anywhere.

Redis Labs

  • Serverless Pricing: Redis Labs does not have a serverless pricing model either. The price does not scale to zero. You need to pay for the instances even when you do not use them. Upstash charges per request, so you only pay for your real usage.
  • REST API: Unlike Redis Labs, Upstash has a built-in REST API, so you can access from environments where TCP connections are not allowed such as edge functions at Cloudflare Workers.
  • Durability: Upstash persists your data to the block storage instantly in addition to the memory, so you can use it as your primary database.

AWS DynamoDB

  • Latency: DynamoDB is a disk based data storage. Both write and read latency are much higher than Redis. Check our benchmark app to get an idea.

  • Complex Pricing: DynamoDB looks cheap at first, but if you start using some advanced features like DAX, Global tables; you may experience a bad surprise with your AWS bill. Upstash has much more transparent pricing policy. It limits your maximum cost with a max price cap to prevent surprises.

  • Portability: DynamoDB is an AWS product. You can not use it anywhere else than AWS. On the other hand, you can use Redis almost in all cloud providers as well as you can host Redis yourself. Upstash does not lock you to any vendor.

  • Testability: Running a local Redis for testing purposes is much easier than running a local DynamoDB. Check this.

FaunaDB

  • Latency: FaunaDB is a globally consistent database. Consistency at global level comes with performance cost. Check our benchmark app to get an idea.

  • Complex Pricing: FaunaDB has a complicated pricing. It has 6 different dimensions to calculate the price. Check this article where the pricing is explained. If your use case is write heavy and if your requests have bigger payloads then it can become expensive very easily. On the other hand, Upstash has different options for different needs and pricing is simple for all options. You pay per request in addition to storage cost which is generally much smaller amount.

  • Portability: FaunaDB is only supported by Fauna Inc. On the other hand, you can use Redis almost in all cloud providers as well as you can host Redis yourself. Upstash does not lock you to any vendor.

  • Testability: Running a local Redis for testing purposes is much easier than running a local FaunaDB. Check this.

What makes Upstash different?

You have a new project and you do not know how many requests will it receive? You love the performance and simplicity of Redis. But all Redis Cloud services charge you per instance or per GB of memory. But maybe your application will not receive big traffic at first, then why will you pay the full amount? Unfortunately none of the current Redis cloud products provides a real pay-per-use pricing model.

Let's do a simple calculation. Say I have a 1GB Redis database and I receive 1 million requests per month. For ElastiCache (cache.t3.small, $0.034 hourly) this costs at least $24 not including data transfer and storage cost. For RedisLabs, the 1GB plan costs $22 per month. For Upstash the price is $0.2 per 100k requests. For 1 million, it is $2 plus the storage cost that is $0.25. So for 1GB, 1M request per months, ElastiCache is $24, RedisLabs is $22, Upstash is $2.25.

What if your product becomes popular and starts to gain high and steady traffic?

Most of the serverless products start to lose their spell if the service receives steady and high traffic as it starts to cost higher than server/instance based pricing models. To overcome this situation we give you option to purchase Enterprise Plan. In Enterprise plan you can set fixed price per month with a restriction on max throughput and data size. For high and steady throughput use cases, enteprise databases cost less than serverless one. The good thing is you can start your database with pay-as-you-go pricing and move it enterprise when you want. See enterprise plans for more information.

Even if you do not move to the Enterprise plan, Upstash does not make you bad surprises on billing. Upstash databases have Monthly Max (Ceiling) Price, that means your database can not cost more than ceiling price. This is $120 monthly for single zone databases, so your database will cost $120 at maximum even your application is becomes top page in HackerNews.