AWS News Blog

PeachDish – Login, Pay, Cook, and Eat With AWS

PeachDish is an AWS-powered dinner delivery service!

After you sign up, you receive a nicely packed box full of fresh ingredients and complete cooking directions for two generously-proportioned meals for two people. Each pair of meals is shipped in a box that measures exactly one cubic foot. The perishable ingredients are packed in an insulated container and chilled with an ice pack while in transit.

In order to write a full and accurate blog post, I subscribed to the service and opened up a brand new AWS Test Kitchen in my home. My wife Carmen agreed to help out with this post and was kind enough to model for the photos!

PeachDish Architecture
PeachDish makes use of a multitude of AWS and Amazon services. Here’s a sampling (diagram courtesy of PeachDish):

  • Amazon Route 53 – A Route 53 hosted zone manages the DNS records for the peachdish.com domain.
  • Amazon S3 – Application code and static objects are durably stored in S3.
  • Amazon CloudFront – Static content from S3 and dynamic content generated on EC2 instances is made available with low latency via CloudFront.
  • AWS Elastic Beanstalk – The application is deployed and scaled through Elastic Beanstalk. It manages an Auto Scaling group comprised of a collection of Amazon EC2 instances and also manages code deployment and rollback.
  • Amazon RDS – Hosts the MySQL database and read replicas. Several of the outside services that work with PeachDish drive a substantial amount of read traffic.
  • Amazon Payments PeachDish uses the new Login and Pay feature of Amazon Payments to simplify and streamline the process of subscribing to the service.

The developers at PeachDish made good use of Elastic Beanstalk’s version management facility. In their own words:

We work in a different time zone than our tech team. They will generally deploy a new application version after midnight EST. If our customer service team finds a bug sometime in the morning, they can use the AWS Console to initiate a rollback very easily, with no effect on our customers.

We also use this feature when we switch the Login and Pay sandbox into production mode. As part of the process, we can do a temporary rollback while the new site gains entrance to the Login and Pay whitelist (usually a matter of a couple of seconds).

They also had a good story to tell about their discovery of read replicas for Amazon RDS:

We began to see some load issues when we ran our MySQL-powered reports. Because we are a startup and don’t have any database experts on staff, we were not sure how to address this issue. Fortunately, we logged in to the RDS console and saw the following message:

We read the RDS documentation to learn more about read replicas and realized that we could solve our load problem by moving the heavy queries to a read replica! We never imagined that we could create a read replica with just a couple of clicks, without having to spend several days building a test instance and working through all of the technical details. AWS was our technical expert. In this case, they encoded all of their technical knowledge behind a couple of simple clicks. This allowed us to solve the problem quickly so that we could focus on what we are best at.

Login and Pay
In order for a subscription-based service to succeed, it must be easy for potential users to subscribe and pay for it. Ideally, they can do so with a couple of clicks, and they can do it using a payment system that is already familiar to them.

Login and Pay with Amazon Automatic Payments is ideal for this purpose. It provides a simple and seamless customer experience and allows the owner of the site to control and customize the overall site experience and presentation. Customers can login with their existing Amazon credentials and initiate their subscription in minutes.

Here is the signup flow for PeachDish. Note that Login and Pay supplies the content and the widgets, and that I remain on the PeachDish site throughout the entire process:

When I click the Pay with Amazon button I get to choose a shipping address and a payment method. This content, along with the subscription summary, is supplied by Login and Pay:

Login and Pay integrates with your site using a set of widgets and APIs. The login feature makes use of OAuth 2.0. Once the customer has logged in, their name, email address, and zip code are provided to the client site to aid in the account creation process. The Login and Pay with Amazon Integration Guide contains the information that you will need to implement the payment and subscription features on your own site.

How Does it Taste?
With all of this infrastructure in place to deliver the fixings for a good meal to your kitchen (or at least to your doorstep), the final question is, how is the product?

We unpacked everything and laid it out on the counter (this is for two complete meals):

Carmen and I followed the directions with care and ended up with a meal that actually fed three hungry adults:

Our dinner tasted as good as it looked:

As you might be able to tell from our kitchen, we are somewhat fanatical about our food. We shop daily and grow lots of stuff in our backyard. With that said, we were very happy with the four PeachDish meals that we received, cooked, and devoured. The recipes were easy to follow, the ingredients were fresh and plentiful, and everything came together really nicely.

Jeff;

PS – Are you a startup company interested in integrating Login and Pay with Amazon? If so, You’re in luck! There is a limited time special offer that provides free processing on your first $10,000 or $100,000 transactions over 12 months. Visit the Amazon Toolbox Exclusive Offers and mention the AWS Blog!