Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,29 @@ Before beginning the modernization process, you need to configure your developme

Navigate to the workshop studio page and access the "Outputs" tab to retrieve your environment credentials:

![Workshop studio tab](/static/images/modernizr/0/setup-01.png)
![Workshop studio tab](/static/images/modernizer/0/setup-01.png)

Locate these two important values:
- **VSCodeServerPassword** - Authentication credential for your VS Code instance
- **VSCodeServerURLModernizr** - Direct endpoint to your cloud-based IDE
- **VSCodeServerURLModernizer** - Direct endpoint to your cloud-based IDE

Your values are unique to you and will differ from the above example.

Click the `VSCodeServerURLModernizr` to launch your development environment. Enter the password when prompted and allow approximately 60 seconds for the environment to initialize. Any startup notifications can be safely dismissed.
Click the `VSCodeServerURLModernizer` to launch your development environment. Enter the password when prompted and allow approximately 60 seconds for the environment to initialize. Any startup notifications can be safely dismissed.

## Step 2: Configuring the Cline AI Agent

Your workspace includes **Cline**, an autonomous AI coding agent that will assist with the modernization process. Cline provides intelligent code analysis, generation, and refactoring capabilities throughout this workshop.

Access the [Cline](https://cline.bot/) extension through the VS Code interface:

![Cline plugin](/static/images/modernizr/0/setup-02.png)
![Cline plugin](/static/images/modernizer/0/setup-02.png)

## Step 3: Establishing Bedrock Integration

Configure Cline to use Amazon Bedrock as its foundation model provider. Select "Use your own API Key" and choose "Amazon Bedrock" from the dropdown:

![Cline plugin API config](/static/images/modernizr/0/setup-03.png)
![Cline plugin API config](/static/images/modernizer/0/setup-03.png)

Apply the following configuration parameters:
- **Authentication**: AWS Profile
Expand All @@ -45,7 +45,7 @@ Apply the following configuration parameters:

Confirm the settings and initialize the connection:

![Cline plugin config](/static/images/modernizr/0/setup-04.png)
![Cline plugin config](/static/images/modernizer/0/setup-04.png)


::alert[You are working in a lab environment, the foundational models have configured rate limiting, it is highly likely during the workshop you will get throttled and you will have to retry the operations. You have 4 request per minute using Claude 4 and 6 request per minute using Claude 3.7.]{type="info"}
Expand All @@ -59,11 +59,11 @@ Verify the Bedrock connection is functioning correctly by sending the below test
Hello and Welcome to this modernization project, can you confirm you can read and list all the files in the workspace?
```

![Cline plugin testing](/static/images/modernizr/0/setup-05.png)
![Cline plugin testing](/static/images/modernizer/0/setup-05.png)

This workshop provides access to two foundation models: `claude-sonnet-4` (latest generation with enhanced reasoning capabilities) and `claude-sonnet-3.7` (previous generation with proven reliability).

![Cline plugin response](/static/images/modernizr/0/setup-06.png) ![Cline plugin result](/static/images/modernizr/0/setup-07.png)
![Cline plugin response](/static/images/modernizer/0/setup-06.png) ![Cline plugin result](/static/images/modernizer/0/setup-07.png)

## Step 5: Configuring Auto-Approval Settings

Expand All @@ -76,13 +76,13 @@ Enable the following capabilities:

Increase the **Max requests** parameter from 20 to 40 to accommodate complex multi-step operations without interruption.

![Cline plugin auto-approve settings](/static/images/modernizr/0/setup-08.png)
![Cline plugin auto-approve settings](/static/images/modernizer/0/setup-08.png)

## Step 6: Verifying MCP Server Status

Access the MCP server management interface (stacked server icon) to confirm all specialized AI tools are operational. You should observe 3 active servers with green status indicators, confirming proper connectivity.

![Cline plugin auto-approve settings](/static/images/modernizr/0/setup-09.png)
![Cline plugin auto-approve settings](/static/images/modernizer/0/setup-09.png)

## Step 7: MCP Integration Verification

Expand All @@ -92,7 +92,7 @@ Test the MCP server functionality by querying existing DynamoDB resources:
Please show me the DynamoDB tables that I have in this region
```

![Task MCP Server](/static/images/modernizr/0/setup-10.png)
![Task MCP Server](/static/images/modernizer/0/setup-10.png)

## Environment Ready

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Database Modernizr Workflow"
title: "Database Modernizer Workflow"
date: 2025-09-01T10:41:04-05:00
weight: 30
chapter: true
Expand All @@ -13,7 +13,7 @@ Begin by reviewing the application documentation in the `README.md` file, which

::alert[You don't have to follow the `README.md` instructions as your environment is already pre-configured for you. ]{type="info"}

![README](/static/images/modernizr/1/workflow-01.png)
![README](/static/images/modernizer/1/workflow-01.png)

## Starting the Application Services

Expand All @@ -28,7 +28,7 @@ While your application environment is already preconfigured, you'll still need t

The backend API server manages all client requests and database transactions. Navigate to the `/backend` directory and open an integrated terminal (right-click > "Open in Integrated Terminal"). Grant any requested permissions when prompted.

![menu](/static/images/modernizr/1/workflow-02.png)
![menu](/static/images/modernizer/1/workflow-02.png)

Build and start the backend service using these commands:

Expand Down Expand Up @@ -87,15 +87,15 @@ Verify the API server is responding correctly by accessing the health endpoint:

This endpoint should return status information confirming the backend is operational:

![Backend](/static/images/modernizr/1/workflow-03.png)
![Backend](/static/images/modernizer/1/workflow-03.png)

Monitor your backend terminal for request logging, which demonstrates the API request flow.

### Frontend Application Access

Access the e-commerce frontend by navigating to `[your-url]/store/`:

![Store](/static/images/modernizr/1/workflow-04.png)
![Store](/static/images/modernizer/1/workflow-04.png)

## System Interaction Analysis

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Think of database modernization like renovating a house while people are still l

Our process consists of seven carefully designed stages, each one building on the previous step. It's like following a recipe — each ingredient needs to be added at the right time and in the right order to get the perfect result.

![Modernization workflow](/static/images/modernizr/1/workflow-base-01.png)
![Modernization workflow](/static/images/modernizer/1/workflow-base-01.png)

## Stage 1: Understanding What You Have — Database Detective Work

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ chapter: false

The `/prompts` directory implements a structured approach to AI-driven development through organized subfolders that correspond to each stage of the modernization workflow. Each subfolder contains three components: Requirements, Design, and Tasks documents. This architectural pattern creates a comprehensive framework that systematically guides the entire modernization process from initial analysis through final implementation.

![Prompts](/static/images/modernizr/1/workflow-prompt-01.png)
![Prompts](/static/images/modernizer/1/workflow-prompt-01.png)

### Requirements Documentation — Defining Objectives and Success Criteria

Expand All @@ -32,4 +32,4 @@ The structured approach provides several advantages. The LLM receives explicit g

To conceptualize this framework using a navigation analogy: the Requirements document defines the destination and the reasons for traveling there, the Design document provides the comprehensive route map showing all available paths and optimal strategies, and the Tasks document functions as turn-by-turn GPS navigation that guides execution through each specific step of the journey. This structured approach transforms complex modernization challenges into systematic, manageable processes that can be executed reliably through AI-assisted development workflows.

![Tasks](/static/images/modernizr/1/workflow-prompt-02.png)
![Tasks](/static/images/modernizer/1/workflow-prompt-02.png)
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Each stage generates "Artifacts" — deliverables that will be used in the futur

Let's start exploring the artifacts available for the first stage `stage-01`. This stage is focused on capturing the data that is available from the source database and application backend logic. We use the MySQL MCP server to understand table structure, constraints and data. Next we use the MySQL query logs to identify the data . Finally, we explore the application logic to capture all the access patterns that we will need to modernize.

![Artifacts](/static/images/modernizr/1/workflow-artifacts-01.png)
![Artifacts](/static/images/modernizer/1/workflow-artifacts-01.png)

DynamoDB is all about application the access patterns that we need to support. The secret to DynamoDB data modelling is to store data exactly in the format your application will consume it, structing your data in a way that can be read as efficiently as possible with the smallest number of queries.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Rather than following prescriptive instructions, focus on understanding the core

This picture is an Entity Relationship Mapping that will help you understand in detail what it needs to be modeled.

![Start conversation](/static/images/modernizr/2/stage02-10.png)
![Start conversation](/static/images/modernizer/2/stage02-10.png)

## Entity Relationship Mapping

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,23 +151,23 @@ We will add two indexes, that are possible future hot partitions, but with the n
- **Warning:** Monitor for hot partitions with high-volume sellers
```

![User entitiy modifcation](/static/images/modernizr/2/stage02-11.png)
![User entitiy modifcation](/static/images/modernizer/2/stage02-11.png)

Make sure all the modifications are stored in the `working_log.md` file! sometimes `Cline` ignores what you say!!

![Working Log](/static/images/modernizr/2/stage02-12.png)
![Working Log](/static/images/modernizer/2/stage02-12.png)

In my specific scenario, `Cline` was having a hard time understanding it needed to create the GSIs and it wasn't including them in the data model. It is your responsibility to make sure every access patterns is properly identified and recorded, remember this is the base of data modeling and all the future steps depend on the decisions you make at this point.

![Working Log](/static/images/modernizr/2/stage02-13.png)
![Working Log](/static/images/modernizer/2/stage02-13.png)

Even at some points it actually suggested me to have a different table for my shopping cart entity.

![Working Log](/static/images/modernizr/2/stage02-14.png)
![Working Log](/static/images/modernizer/2/stage02-14.png)

But with a little patience, and making sure all the data is there I was able to guide `Cline` to obtain the outcome and table structure that we originally intended.

![Working Log](/static/images/modernizr/2/stage02-15.png)
![Working Log](/static/images/modernizer/2/stage02-15.png)

Before completing this workshop section, make sure the content you approve is valid, we are trying to use one table with 3 different entities, one for User metadata, another for User cart items and finally one for User orders! If in your case you are still getting suggestions to have another table for orders or shopping cart items, make sure you tell `Cline` we don't need it anymore.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,6 @@ We will add two indexes, that are possible future hot partitions, but with the n
- **Warning:** Monitor for hot partitions with high-volume sellers
```

![Working Log](/static/images/modernizr/2/stage02-16.png)
![Working Log](/static/images/modernizer/2/stage02-16.png)

In my execution, I was getting throttled, please remember to be patient and just retry! but also review the changes made by `Cline`.
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,12 @@ GSI1: Category Hierarchy Lookup (Migration Support)

Always remember to check if the input was added in the working log and the instructions were followed.

![Working Log](/static/images/modernizr/2/stage02-17.png)
![Working Log](/static/images/modernizer/2/stage02-17.png)

Make sure that everything that is not needed, such other tables that might have been suggested before are not longer there, we don't need to send noise when we will re-generate the data model.

![Working Log](/static/images/modernizr/2/stage02-18.png)
![Working Log](/static/images/modernizer/2/stage02-18.png)

At this point `Cline` should tell you the summary of the work, and that it has effectively created a 3 table architecture.

![Working Log](/static/images/modernizr/2/stage02-19.png)
![Working Log](/static/images/modernizer/2/stage02-19.png)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Great! Now it is time to mark as completed task 3.2 and proceed with the next on

This task involves comprehensive analysis and redesign of your initial data model based on the validation results from the previous step. The DynamoDB MCP Server will perform detailed optimization analysis, potentially recommending significant structural changes to improve performance and cost efficiency.

![Data model](/static/images/modernizr/2/stage02-20.png)
![Data model](/static/images/modernizer/2/stage02-20.png)

## Critical Review and Validation Phase

Expand All @@ -31,7 +31,7 @@ The design refinement process often reveals opportunities for optimization that

This iterative approach reflects industry best practices where database designs undergo multiple refinement cycles before reaching production readiness.

![Data model](/static/images/modernizr/2/stage02-21.png)
![Data model](/static/images/modernizer/2/stage02-21.png)

## Design Validation Checkpoints

Expand All @@ -49,6 +49,6 @@ Confirm that the final data model maintains the standardized naming convention f

This generic naming convention provides flexibility for future schema evolution while maintaining consistency across the application architecture.

![Data model](/static/images/modernizr/2/stage02-22.png)
![Data model](/static/images/modernizer/2/stage02-22.png)

The standardized naming approach also simplifies application code by providing predictable patterns for GSI references, reducing the likelihood of configuration errors during deployment.
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ The Migration Contract implements a transformation engine that supports multiple

Explore the `contracts` folder to understand the supported transformation patterns, validation rules, and architectural constraints. This reference documentation provides comprehensive details on how the contract functions as both a specification document and an execution engine for the data migration process.

![Data model](/static/images/modernizr/2/stage02-23.png)
![Data model](/static/images/modernizer/2/stage02-23.png)

## Contract Quality Assurance

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@ Let's begin by telling Cline to start working on data modeling. Use this command
Please open this file `prompts/02-dynamodb-data-modeling/tasks.md` and start working in the first available task.
```

![Start conversation](/static/images/modernizr/2/stage02-01.png)
![Start conversation](/static/images/modernizer/2/stage02-01.png)

## Watching the Magic Happen

You'll know the workshop is working because you'll see Cline actively creating new files in real-time! It uses a visual diff system (like track changes in a document) to show you exactly what's being added or modified. This helps you understand each step of the process.

![Gitdiff](/static/images/modernizr/2/stage02-02.png)
![Gitdiff](/static/images/modernizer/2/stage02-02.png)

**Take your time** with each file that gets generated. Don't rush through this process! Read everything, understand what Cline is doing at each step and why, and don't hesitate to ask questions. This is interactive learning - if you get confused at any point, just ask Cline to explain what's happening.

Expand Down Expand Up @@ -59,39 +59,39 @@ Order processing is the critical part of our business! this is what it generates
Finally a very small set of operations are allocated to sellers, it is less than 1 QPS, representing 0.1% of the traffic. Maybe 0.05 QPS on product management, and 0.25 QPS on seller profiles, there is very low traffic on category management as they barely change.
```

![Questions](/static/images/modernizr/2/stage02-03.png)
![Questions](/static/images/modernizer/2/stage02-03.png)

## The Collaborative Design Process

As you work through this stage, you'll encounter several "checkpoint" moments where Cline stops and asks for your input. These aren't interruptions - they're important collaboration points designed to ensure the design stays on track and meets your specific needs.

![Start conversation](/static/images/modernizr/2/stage02-05.png)
![Start conversation](/static/images/modernizer/2/stage02-05.png)

## Being Patient with AI

During this intensive design stage, you might occasionally see messages about rate limiting or throttling. This is normal! Simply wait a few seconds and try again. The system can handle about 4 requests per minute, which should be enough for our workshop. If your task fails to execute please re-try, and just ignore the message that says "Try breaking down the task into smaller steps" as this is not our case, we know it is rate limiting!

![Start conversation](/static/images/modernizr/2/stage02-06.png)
![Start conversation](/static/images/modernizer/2/stage02-06.png)

## Using Specialized AI Tools

At some point, Cline will ask for permission to use the DynamoDB MCP Server — this is like accessing a specialized AI consultant who's an expert specifically in DynamoDB design. When asked, give permission for this. This expert AI will help analyze all the data we've collected and create a proper database design.

![Start conversation](/static/images/modernizr/2/stage02-07.png)
![Start conversation](/static/images/modernizer/2/stage02-07.png)

## Quality Control Checkpoint

Cline will first create a summary file called `dynamodb_requirements.md`. This is like having an architect show you the summary of everything you've discussed before they start drawing the blueprints.

::alert[ **Important:** Read this file carefully! Sometimes AI can accidentally add requirements that were never discussed, or miss important details. This is your chance to catch any errors before they become part of the final design.]{type="info"}

![Start conversation](/static/images/modernizr/2/stage02-08.png)
![Start conversation](/static/images/modernizer/2/stage02-08.png)

## Your First Database Design

Once you approve the requirements summary, Cline will create your actual DynamoDB data model. This is exciting — you're seeing your new database structure come to life! Cline has generated the new data model file `artifacts/stage-02/dynamodb_data_model.md` please open it and read it carefully.

![Start conversation](/static/images/modernizr/2/stage02-09.png)
![Start conversation](/static/images/modernizer/2/stage02-09.png)

## What Comes Next

Expand Down
Loading