Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Momento Announces Serverless Cache Service

Momento Announces Serverless Cache Service

The startup Momento recently emerged from stealth mode launching a serverless cache. The new service is generally available and offers a highly available cache with an on-demand pricing model based on data transferred in/out.

Created by former AWS employees, Momento Serverless Cache is an elastic service capable of handling dynamic bursts of traffic up to millions of requests per second. Daniela Miao and Khawaja Shams, co-founders at Momento, explain:

Today, we have serverless compute, storage, databases, queues, and streams. Everything—except caching. That is a problem. A cache is essential when building interactive applications capable of handling dynamic bursts of traffic. With existing caching solutions, provisioning a cache requires tackling a huge number of error-prone configurations and learning common lessons—one avoidable outage at a time.

Memento highlights different use cases for the new serverless option: working as a cache for DynamoDB and other NoSQL databases like Mongo or Cassandra, a caching layer for Relational DBs and serverless apps, a fast object store, or a serverless datastore.

As for the documentation, the Momento Serverless Cache is available using the CLI and the open-source SDKs for Go, Java, JavaScript/Node.js, Python, .NET, Rust, and PHP. The command configure in the CLI is used to set the name of the cache and the default TTL for cache entries, while the command cache is used to interact with the records. For example:

$ momento cache set --key infoq --value news
$ momento cache get --key infoq

According to the founders, with a single API call and "five lines of code", developers can create a secure and highly available cache relying on JSON API over HTTP or a custom-built RPC protocol. The SimpleCache client object uses gRPC to communicate with the Momento service.


Talking about their experience at AWS, Miao and Shams add:

We saw this gap when we observed similar outages across teams at Amazon, AWS customers, and our own experience adding caches to our stacks. Creating a DynamoDB table is a single API call, but adding a cache is measured in sprints worth of work.

Alex DeBrie, an AWS Data Hero and the author of The DynamoDB Book, explains on the Momento blog why a cache might be required to accelerate DynamoDB:

There are certain types of applications where the partition throughput limits of DynamoDB are a problem. Think of social media applications like Twitter or Reddit where popular tweets or threads can receive millions of impressions in a short period. These are examples of Zipfian distributions where the most popular items are accessed orders of magnitude more than the average item. Because DynamoDB wants a more even distribution of your data, your application may get throttled as it tries to access popular items.

Tom Killalea, board member at MongoDB, tweets:

Operating a large-scale and highly resilient cache is one of those tasks that most developers aren't eager to take on. Thanks to the experts at Momento, now they don't have to.

Announcing the general availability of the service, Momento released a guide about caching strategies and patterns, describing the common options and challenges involved in deciding where to cache (local vs. remote), when to cache (read vs. write) and how to cache (inline vs. aside).

The default service limits for the new service include an API rate of 100 requests/second per cache, a 1MB/s throughput, and a 1-day maximum TTL.

Momento has a pay-on-demand pricing model. Developers are not selecting a cluster size in advance, and the charges are based on the requests made against the cache. The service costs $0.15/GB for data transferred in/out, with the first 50 GB free each month.

About the Author

Rate this Article