Amazon DynamoDB Data Modeling for Architects & Developers
- Description
- Curriculum
- FAQ
- Reviews
DynamoDB Data Modeling Best Practices:
Note:
- This course does NOTÂ use AWS console for showing you basic DynamoDBÂ operations
- This course does NOTÂ focus on just coding
This course primarily focusses on Data Modeling practices and patterns for Amazon DynamoDB. You will learn DynamoDB best practices, tips and techniques for building modern and cost effective applications/microservices. At a high level, course is divided into 2 parts:
Part-1 Â Objective:Â Build a solid understanding of DynamoDB
- How DynamoDB works under the covers?
- Hands-on exercises to try out the DynamoDBÂ API(s) using CLI and Python code
- Feature/capability comparison with relational database
Part-2Â Objective: Learn to apply DynamoDB design patterns
- Learn DynamoDB data modeling process
- How to apply patterns to address business requirements
- Analyze the access patterns and identify the right pattern to use
- Hands-on exercises to build a data model for a banking use case (refer:Â ACME case study)
Tools in use
- NoSQL workbench
- Local DynamoDB for model development & testing
- AWS cloud account for testing (minimal use)
- An integrated development environment (like Visual Studio Code)
- Python – if you would like to run the code samples on your machine
- Git client
Course approach
Course does not assume that you already know DynamoDB. For that reasons, I am first covering the basics of DynamoDB. But unlike other courses, I will not just show you how-to use DynamoDB rather I will show you how DynamoDBÂ works under the covers !! I strongly believe that to effectively use a database, an architect MUSTÂ understand how database technology works under the covers.
Data modeling is an iterative process. I am sharing a prescriptive guidance on the process and then showing step-by-step how to apply the process. As a case study I am using an example of ACME bank (a fictitious retail bank). Throughout the course we will be applying the process to ACMEÂ bank use cases to evolve a full blown DynamoDB data model.
Case study : ACMEÂ Bank
A fictitious bank that has embarked on a journey to modernize its retail banking systems. You are the Lead Architect for the retail banking modernization initiative. It is your responsibility:
- To work with business owners to understand the requirements
- To model the data for DynamoDB
- Prove/Disprove that DynamoDB will meet the application needs
- Educate stakeholders on DynamoDBÂ capabilities
- Help ACMEÂ Bank CTOÂ to make a decision on whether to use DynamoDB or not
-
3Setup Local DynamoDB and NoSQL Workbench
Setup local development environment
-
4Exercise: NoSQL Workbench walkthrough
You will learn about NoSQL Workbench capabilities
-
5Exercise: Use CLI, Workbench with Local Table
You will get hands on experience with using CLI and Workbench against the local DynamoDB
-
6Setup IDE and Git Repository
Setup VSC and clone the course repository
-
7DynamoDB: A Logical View
In this lesson I will provide you a logical view of the DynamoDB service and introduce you to basic terminology.
-
8Table capacity fundamentals
Learn how DynamoDB pricing works. You learn the terms WCU/RCU/WRU/RRU
-
9Table capacity modes
Learn about the two capacity modes supported by DynamoDB.
-
10Exercise: Try out the capacity modes
In this exercise you will experiment with capacity modes
-
11Item Attributes & Data Types
DynamoDB is NOT type-less, it supports multiple types of data
-
12Exercise: Create a test model
In this exercise you will create a simple model
-
13DynamoDB Operations
Learn about the control & data plane operations
-
14Control Plane Operations
Learn the DynamoDB Control Plane API
-
26Indexes : Under the hood
Learn the differences between Relational database indexes and DynamoDB indexes. Learn about the types of indexes and which one to use when.
-
27Local Secondary Index (LSI)
Deep dive into LSI
-
28Hands-On: Local Secondary Index
Try out an LSI
-
29Global Secondary Index (GSI)
Deep dive into GSI
-
30Hands-On: Global Secondary Index
Try out a GSI
-
31Hands-On: Model the game player
-
34ACME Bank Transformation Journey
ACME Bank is a fictitious company that has decided to use DynamoDB for their retail banking systems. You are the lead architect who is given the responsibility to design the DynamoDB data model.
-
35ERD and Access patterns
In this lesson we will go deeper into ERD and Access patterns that need to be addressed with DynamoDB model
-
40Patterns for one-to-many relationships
Learn the patterns used for designing one-to-many relationship between entities
-
41Analyze : Customer-Account Relationship
Analyze the relationship between customer and account entity
-
42Hands-On: Embedding with Secondary Index
Apply an appropriate pattern to ACME data model - design the relationship between account and customer
-
43Hands-On: Add index for accessing customer on account
Address some of the customer access patterns with secondary indexes
-
44Hands-On: Model the transaction entity
Model the transaction entity
-
45Analysis : Taking advantage of sparse indexes
Analyze the remaining access patterns to see if you can take advantage of Sparse indexes.
-
46Hands-On: Add a sparse index for Customer-Txns
Implement a Sparse GSI for the Cust & Txn access pattern identified in earlier lesson
-
47Analysis : Taking advantage of Index Overloading
Analyze the remaining pattern to see if we can use index overloading for saving costs
-
48Hands-On: Implement Overloaded GSI for Customer & Transaction
Add an overloaded index
-
56What are ACID Transactions?
Learn how ACID transactions are supported by DynamoDB
-
57API: TransactWriteItems
Learn how to use TransactWrite API
-
58Hands-On: TransactWriteItems API
Try out the TransactWrite API
-
59TransactWriteItems Idempotence
What does idempotency mean in the context of DynamoDB
-
60API : TransactGetItems
Try out the TransactGetItem
-
64DynamoDB Streams
You will learn (a) what are DyanamoDB streams (b) How the work under the covers
-
65Shards & Stream Reader Application
You will learn about shards and how applications read stream record events from the stream
-
66Hands-On: Experiment with Streams API
In this hands on exercise you will try out the stream API
-
67Hands-On: Tryout API with Python
In this hands on exercise you will use Python code to read the stream events