Point in Time Recovery Demo
Start course

This course explores Amazon Web Service's DynamoDB and teaches you how to architect DynamoDB setups—with an emphasis on high availability—ensuring that your internet-scale applications are always available. The course begins by looking at the various option offered by DynamoDB, before moving onto on-demand backup and restore, and rounding off by looking at point in time recovery. In each section, there is a real-world demonstration from the AWS platform which walks you through the topics covered.

If you have any feedback, queries, or suggestions relating to this course, please contact us at

Learning Objectives

  • Understand how to provision and configure DynamoDB in a manner that ensures it is highly available and able to serve all read and write requests to it.

Intended Audience

This course has been created for those who are responsible for architecting DynamoDB setups.


To get the most from this course you should be familiar with basic NoSQL concepts, and DynamoDb concepts such as Tables, Items, and Attributes. Consider watching our dedicated “Working with Amazon DynamoDB” course and/or review the “10 Things You Should Know” about DynamoDB blog post, before taking this course.

Source Code

The following GitHub repository is referenced within this course:


Let’s perform a quick demonstration of requesting a Point In Time Recovery. I’ll perform the demonstration within the AWS Dynamodb console. The first thing that we need to do is enable Point In Time Recovery on the “cloudacademy-courses” table.

To do so I’ll select the table and then navigate into the backups tab. Here, under the Point In Time Recovery section I’ll click the Enable option to enable it. Once it has been enabled take note of the earliest and latest restore dates - these are the parameters that your point in time recovery must be requested within.

It's important to note that the Latest restore date always lags the current time by a few minutes. Let's now examine the local system clock within the terminal to determine the current time. Next, I’ll return to the “cloudacademy-courses” table and delete one of the existing items. Returning back to the backups section I’ll perform an immediate Point In Time Recovery - and name it “pitr-recovery1”. I’ll then return to backups of the same table and wait until the latest restore date moves beyond the time that I just made the delete - when this ready I’ll take a second Point In Time Recovery - and name it “pitr-recovery2”.

I’ll now skip the demo forward to the point where both Point In Time Recovery tables have been successfully restored.

Here we can see that the first point in time recovery table still contains the table item that I deleted. This is because the latest restore date at the Point In Time Recovery request hadn’t moved beyond the time at which I performed the item deletion.

If we now view the second point in time recovery table we can see that it indeed contains all but the deleted item. This is because the latest restore date at the Point In Time Recovery request had now moved beyond the time at which I performed the item deletion.

This highlights the concept of automated point in time recovery - a very cool and useful table data recovery feature!

About the Author
Learning Paths

Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.

He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.

Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).