Lesson 1Choosing partition key and sort key patterns for tasks and histories (composite keys, prefixes)Here, you learn to pick good partition and sort key designs for tasks and their history records. It looks at combined keys, key starters, and choices that affect how easily you can search, how well it grows, and how writes spread out in real working systems.
Combined key design for task and history recordsUsing key starters to group related task recordsDesigning keys for even write and read spreadPatterns for time-based task history searchesLesson 2Backup, restore, and point-in-time recovery considerations for task data and history logsYou will find out how to keep task and history data safe with backups and ways to recover. It explains on-demand backups, recovery at a specific time, steps to restore, and how to build structures and processes that allow safe and testable recovery.
Turning on and handling point-in-time recoveryMaking and restoring on-demand backupsDesigning restore steps for task tablesTesting recovery and reducing data lossLesson 3Data serialization and attribute types: strings, numbers, maps, lists, booleans, and tradeoffs for complex attributesLook into DynamoDB attribute types for task data, like strings, numbers, maps, lists, and true/false values. Learn ways to handle complex fields, choices for nested parts, and how these affect indexing and search costs.
Using simple types for main task attributesMaps and lists for flexible extra data fieldsStoring time stamps and number countersChoices of nested and complex attributesLesson 4Item attribute design: task item schema with types (taskId, title, description, status, updatedAt, metadata)Set up a clear structure for task items, including IDs, titles, descriptions, status, time stamps, and extra data. Learn about type choices, needed versus extra fields, and ways to change without big updates.
Main fields: taskId, title, and descriptionModeling status and updatedAt in a steady wayDesigning flexible extra data structuresStructure changes without heavy updatesLesson 5Access patterns mapping: queries for single task, task history ordered by time, listing recent tasks, pagination strategiesLink real ways to access data to DynamoDB searches for tasks and histories. Learn to search one task, get ordered history, list new tasks, and use pagination with key conditions, filters, and smart sort key designs.
Searching a single task and its latest stateGetting task history ordered by time stampListing recent or active tasks wellPagination with LastEvaluatedKey and limitsLesson 6Primary key and secondary index strategies: GSIs and LSIs for alternative queries (by status, by user)Build main keys and extra indexes to help other searches, like by status or user. Learn when to use GSIs or LSIs, key choices, shown attributes, and how indexes change cost and speed.
Picking main keys for task accessBuilding GSIs for status-based searchesIndexes for searching tasks by user or ownerShown choices and index cost effectsLesson 7Modeling conditional updates and optimistic concurrency with ConditionalExpression and attribute_exists/attribute_not_existsBuild safe shared updates to tasks using DynamoDB conditions. Learn hopeful shared work with version fields, ConditionalExpression, and checks for field existence to stop lost updates and follow business rules.
Version fields for hopeful shared workUsing ConditionalExpression in updatesattribute_exists and attribute_not_exists useHandling conditional check failures safelyLesson 8Item attribute design: history item schema with types (taskId, eventId, status, previousStatus, changedBy, timestamp, reason)Build a strong structure for task history items, including IDs, status changes, check fields, and reasons. Learn how to pick attribute types, keep things steady, and help good searches and checks on task life events.
Main IDs: taskId and eventId choicesModeling status and previousStatus changesCapturing changedBy, timestamp, and reasonPicking attribute types for history fieldsLesson 9DynamoDB table selection and rationale for single-table vs multi-table designsKnow when to use one DynamoDB table or many for task tracking. Compare keeping things apart, cost, and work complexity, and learn how to match table design with small services, ownership, and access ways.
When one table fits task tracking needsWhen many tables are betterModeling ownership and service limitsCost, limits, and work choicesLesson 10DynamoDB best practices: capacity modes, write patterns, conditional writes, atomic counters, transactions, and TTL for old history entriesUse good DynamoDB habits for task tracking work. Compare capacity ways, build good write designs, use conditional writes, steady counters, shared actions, and TTL to handle old history and control storage growth.
Choosing between on-demand and set capacityDesigning write ways for busy task itemsUsing conditional writes and steady countersShared actions and TTL for old history data