AWS Startups Blog
Why Your Minimum Viable Product Must Scale
Experimentation and Iteration
The goal of your MVP is to iterate quickly, trying new concepts to see what works well for your early adopters. Quick iteration and rapid deployment are more important in this concept testing phase than delivering complete features for every use case. You want to avoid investing too much time and effort in features and capabilities that customers don’t want. Usage data and customer feedback on your MVP help you zero in on the keys to a successful product.
As you review this feedback, you continually cull functionality that customers don’t want and improve popular features. As early adopter enthusiasm rises, it’s important to keep up the positive momentum by rounding out features your fans love and growing your fan base by expanding your offering to new users. Growth becomes a balancing act of keeping existing users happy and loyal with a steady stream of improvements while scaling the business model with additional audiences. This increases the load on your infrastructure. Once you’ve discovered the successful formula, there’s no time to go back and design a “production” version of the product to handle usage at scale. This is where cloud services can help.
Leveraging the Cloud
Cloud services enable faster experimentation cycles to lower your risk and make it easier to add functionality as you get customer feedback. Cloud services help free you from capacity planning so you can focus on creating and improving your core features. When your app, website, or service goes viral, scale economies of cloud services improve your margins and additional usage data points you to the most meaningful enhancements to further propel your growth. In order to maximize the benefits of sudden and unexpected positive publicity, your architecture must scale with such stratospheric growth.
Consider Mapbox, a mapping platform for developers that makes it easy to add maps, search, directions, and custom, geo-coded data to web and mobile apps. Mapbox stores user-specific map metadata such as the default zoom level, map center point, layers, map tile locations, and other details in a NoSQL database. As the mapping startup grew in popularity, Mapbox managed three CouchDB clusters, each consisting of three to six nodes for redundancy and to reduce latency for global map requests. As the team took a step back to consider how to iterate more quickly and deliver new features, they realized that building and maintaining their own NoSQL service wasn’t delivering the additional value they wanted for their customers. They faced a choice: Should they continue managing their own NoSQL service or use that time to add new mapping functionality for their customers? The team ultimately decided to migrate its primary database to a managed NoSQL service so they could focus on the software that powers Mapbox. This past summer, Mapbox migrated to Amazon DynamoDB. Mapbox now serves over 200M global users.
The following illustration shows how the Mapbox API service uses AWS to minimize latency for map requests. Client requests are directed through Amazon Route 53 DNS to the nearest cache in Amazon CloudFront’s global network of edge locations. Latency-based routing is then used to direct requests to the closest AWS region where Elastic Load Balancing automatically distributes load across the application servers. Map and user information, zoom level, and additional details, such as where the map is centered, are retrieved from DynamoDB. The map is generated by applying visual overlays to Amazon S3 objects, then returned to the client. Amazon ElastiCache replicates data for even lower latency.
The Importance of Responsive Design
Performance is crucial to your MVP experience. Your app should respond to user requests within one second. If response times extend beyond one second, customers complain and begin leaving bad reviews.
In certain use cases, such as real-time bidding scenarios common in ad tech, gaming, and IoT, your backend code might need to deliver even faster responses, supported by a NoSQL database for latency in the single-digit millisecond range, even at scale. NoSQL services such as DynamoDB make it easy to scale up your app or service to meet demand. You simply modify the read and write capacity units that are needed.
“DynamoDB is simple to start using without much overhead. By the time you do need to start scaling out, you’re already familiar with many operational details around using DynamoDB. Instead of dealing with problems around how to manage data partitions across the underlying infrastructure, monitoring, and all associated potential headaches, you can focus on your database design, and ensure your application is actually achieving product and business goals.” — Ian Ward, Software Engineer, Mapbox
Develop Locally, then Launch Globally
Startups can conserve cash by taking advantage of local development options. For example, developers can download the local version of DynamoDB to write code, validate designs, and experiment with algorithms on a laptop. Once the initial concept is tested, you can deploy a proof-of-concept and then launch your initial product on the AWS Free Tier. Some AWS services such as Amazon SQS, Amazon SES, and DynamoDB include a perpetual free tier. For example, DynamoDB offers enough free capacity for up to 200 million requests per month, enough to validate your MVP and business model without the operational overhead of creating and managing a NoSQL cluster. When your app goes viral, there’s no need to re-architect it to work on a different database that can scale to handle the load.
Improving Time to Market
Startups like Beatpacking, Duolingo, Myriad, Remind, SmugMug, and VidRoll leverage managed cloud services to accelerate the pace at which they add new features to their products. Your MVP might be the start of something just as ground-breaking. So consider ways to quickly expand your product’s functionality and feature set without having to stop and re-architect. Managed services such as API Gateway, AWS Lambda, and DynamoDB quickly scale up without major architectural or operational changes. API Gateway allows to you take advantage of the worldwide network of edge locations to provide your end users with the lowest possible latency for API requests and responses. Lambda functions let you run code without thinking about servers. This frees you from worrying about scaling your infrastructure, so you can focus on your unique features that attract and engage users.
For example, imagine that your MVP displays a map of nearby landmarks, and you quickly discover that your users also want to see a map of recently viewed landmarks. Because API Gateway lets you simultaneously run multiple versions of the same API, you can easily publish an updated API, backed by new Lambda functions.
Continuing the mapping example, you’ll also need to store the previous landmarks, along with additional attributes such as the date/timestamp. NoSQL database services like DynamoDB let you store JSON documents, so you can adjust the set of attributes you store without altering your table structure. This dramatically accelerates your time to market. DynamoDB Streams unlock even more capabilities such as full-text search and just-in-time processing with DynamoDB Triggers, which are custom AWS Lambda functions executed in response to specific data changes in your DynamoDB tables.
What Will You Build and Scale?
With all of this cloud computing power, you have a world of opportunity out there. Whatever you decide to build, design your MVP to scale using the power of the cloud. Then experiment, build your brand, and increase engagement through amazing customer experiences.