What is our primary use case?
Momento serves as an alternative to Redis as a serverless distributed cache where we store frequently used data and access it instead of hitting the database directly.
For example, if our microservice has to access data from a database or an external API, we fetch the data once to reduce redundant API calls or database calls, save it to Momento, and then return the data from Momento itself for all subsequent requests.
Additionally, Momento is used to store feature flags and configuration for different sets of applications.
What is most valuable?
The best features Momento offers are serverless cache support, which eliminates the need to provision a cluster as required for Redis, and automatic scaling to handle traffic spikes, along with built-in time to live functionality.
Automatic scaling stands out as the most valuable feature in my day-to-day work because this cache functionality is the most useful.
Momento is also highly available, so since our application has been deployed in different AWS regions, we can access it with very little downtime or latency.
Momento has positively impacted our organization by improving API response time, reducing external calls, and thus saving costs. The API calls have improved from two seconds down to two hundred milliseconds, and external costs such as those for weather APIs provided by IBM have been cached, resulting in hundreds of dollars being saved for the organization.
What needs improvement?
Momento could provide better cache analytics to identify which keys are frequently accessed, which keys are stale, and which consumers use the most memory. It could also support richer data structures such as streams and geospatial indexes so that we can cache more data from Postgres or Elasticsearch.
For how long have I used the solution?
I have been working in my current field for five or more years.
What do I think about the stability of the solution?
Based on our usage, I find Momento to be stable.
What do I think about the scalability of the solution?
Momento's scalability is impressive as it is fully managed, serverless, and auto-scaling, so we do not have to manage it from our end, and it is reliable.
How are customer service and support?
The customer support for Momento is good, with proper documentation and good customer support that meets our requirements.
I would rate the customer support a ten out of ten, although I personally have not used it for Momento. I have gone through the documentation and SDKs available for Node.js, which have been concise and quite detailed.
Which solution did I use previously and why did I switch?
Previously, we used Redis, but we had to manage the cluster and enable auto-scaling, and we were paying for provisioned instances rather than usage-based pricing, which is why we switched to Momento for cost benefits and overall improved performance.
How was the initial setup?
In terms of pricing, setup cost, and licensing, there is nothing to manage for setup infrastructure as it has been provisioned. There is a certain cost for creating an account and generating an API. For operational costs, we pay based on actual usage, so the cost is associated with our API usage.
What about the implementation team?
I am not certain if we purchased Momento through the AWS Marketplace as it was done by the infrastructure team of the organization, so as a developer, I am not sure.
What was our ROI?
There has been a return on investment because of using Momento. We are using pay-per-usage pricing, so we are not paying for any idle nodes. We are reducing external API calls as we are caching the responses, and increased API performance has led to better usage of our APIs by external partners. Overall, there is a cost benefit associated with that.
What's my experience with pricing, setup cost, and licensing?
In terms of pricing, setup cost, and licensing, there is nothing to manage for setup infrastructure as it has been provisioned. There is a certain cost for creating an account and generating an API. For operational costs, we pay based on actual usage, so the cost is associated with our API usage.
Which other solutions did I evaluate?
Before choosing Momento, we evaluated other options, including Redis, Amazon ElastiCache, and in-memory Node.js, but ultimately, we wanted a fully managed serverless auto-scaling distributed cache, so we chose Momento.
What other advice do I have?
My advice for others looking into using Momento is to understand the caching requirements that your specific application needs. If you require a distributed cache that is serverless and automatically scales, then Momento is a good choice for you. If you have a very basic requirement, you can consider some in-memory or Redis solution. I would rate this product an eight out of ten overall.