In this section, 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: Similar to Elasticache, MemoryDB does not offer a serverless pricing model. The pricing does not scale down to zero, and even the most affordable instance costs over $200 per month. This means you are required to pay for the instances regardless of usage. In contrast, Upstash follows a different approach by charging per request. With Upstash, you only incur charges when actively using your Redis database, ensuring that you do not have to pay when it’s not in use.

  • 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: Initially, DynamoDB may appear cost-effective, but if you begin utilizing advanced features such as DAX or Global Tables, you might encounter unexpected expenses on your AWS bill. In contrast, Upstash offers a more transparent pricing policy, ensuring that you are not taken by surprise. With Upstash, there are limits in place to cap your maximum costs, providing clarity and preventing any unwelcome surprises in your billing.

  • Portability: DynamoDB is exclusive to AWS and cannot be used outside of the AWS platform. However, Redis is supported by numerous cloud providers and can also be self-hosted. Upstash provides compatibility with Redis, ensuring vendor neutrality.

  • 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 Pro Plan. In Pro plan you can set fixed price per month with a restriction on max throughput and data size. For high and steady throughput use cases, enterprise 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 choose not to upgrade to the Pro plan, Upstash guarantees transparent billing without any unexpected surprises. Each Upstash database has a predefined monthly maximum price, known as the “Ceiling Price.” For pay-as-you-go (PAYG) databases, this ceiling price is set at $160 per month. Therefore, even if your application experiences a significant surge in traffic, such as reaching the front page of HackerNews, your Upstash database will not exceed a maximum cost of $160 per month.