dojo.md 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/courses/GENERATION_LOG.md +72 -0
- package/courses/api-error-handling/course.yaml +16 -0
- package/courses/api-error-handling/scenarios/level-1/error-response-format.yaml +131 -0
- package/courses/api-error-handling/scenarios/level-1/http-status-codes-basics.yaml +90 -0
- package/courses/api-error-handling/scenarios/level-1/rate-limiting-basics.yaml +135 -0
- package/courses/api-error-handling/scenarios/level-1/request-validation-errors.yaml +208 -0
- package/courses/api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +189 -0
- package/courses/api-error-handling/scenarios/level-2/idempotency-retry-logic.yaml +159 -0
- package/courses/api-error-handling/scenarios/level-2/rfc-7807-problem-details.yaml +178 -0
- package/courses/api-error-handling/scenarios/level-2/webhook-error-handling.yaml +211 -0
- package/courses/api-error-handling/scenarios/level-3/distributed-tracing-errors.yaml +275 -0
- package/courses/aws-lambda-debugging/course.yaml +11 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/api-gateway-integration.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cloudwatch-logs-basics.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/cold-start-basics.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/environment-variable-issues.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/first-debugging-shift.yaml +73 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/handler-import-errors.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/iam-permission-errors.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/invocation-errors.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/lambda-timeout-errors.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-1/memory-and-oom.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/async-invocation-failures.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/cold-start-optimization.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/dynamodb-streams-debugging.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-concurrency-management.yaml +70 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/lambda-layers-debugging.yaml +76 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sam-local-debugging.yaml +74 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/sqs-event-source.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/vpc-networking-issues.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-2/xray-tracing.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/advanced-debugging-shift.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/container-image-lambda.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/cross-account-invocation.yaml +72 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/eventbridge-patterns.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/iac-deployment-debugging.yaml +68 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/kinesis-stream-processing.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-at-edge.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/lambda-extensions-debugging.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/powertools-observability.yaml +79 -0
- package/courses/aws-lambda-debugging/scenarios/level-3/step-functions-debugging.yaml +80 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/cost-optimization-strategy.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/expert-debugging-shift.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/incident-management-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/multi-region-serverless.yaml +67 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/observability-platform-design.yaml +71 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-architecture-design.yaml +64 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-data-architecture.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-migration-strategy.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-security-design.yaml +60 -0
- package/courses/aws-lambda-debugging/scenarios/level-4/serverless-testing-strategy.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/board-serverless-strategy.yaml +63 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/consulting-serverless-adoption.yaml +57 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/industry-serverless-patterns.yaml +62 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/ma-serverless-integration.yaml +75 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/master-debugging-shift.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/organizational-serverless-transformation.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/regulatory-serverless.yaml +61 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-economics.yaml +65 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-future-technology.yaml +66 -0
- package/courses/aws-lambda-debugging/scenarios/level-5/serverless-platform-design.yaml +71 -0
- package/courses/docker-container-debugging/course.yaml +11 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-exit-codes.yaml +59 -0
- package/courses/docker-container-debugging/scenarios/level-1/container-networking-basics.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-1/docker-logs-debugging.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/dockerfile-build-failures.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-1/environment-variable-issues.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-1/first-debugging-shift.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/image-pull-failures.yaml +68 -0
- package/courses/docker-container-debugging/scenarios/level-1/port-mapping-issues.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-1/resource-limits-oom.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-1/volume-mount-problems.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/container-health-checks.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-compose-debugging.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-2/docker-exec-debugging.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/image-layer-optimization.yaml +81 -0
- package/courses/docker-container-debugging/scenarios/level-2/intermediate-debugging-shift.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-2/logging-and-log-rotation.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/multi-stage-build-debugging.yaml +76 -0
- package/courses/docker-container-debugging/scenarios/level-2/network-debugging-tools.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-2/pid1-signal-handling.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-2/security-scanning-basics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/advanced-debugging-shift.yaml +77 -0
- package/courses/docker-container-debugging/scenarios/level-3/buildkit-optimization.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-filesystem-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/container-security-hardening.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/disk-space-management.yaml +74 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-api-automation.yaml +72 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-daemon-issues.yaml +73 -0
- package/courses/docker-container-debugging/scenarios/level-3/docker-in-docker-ci.yaml +69 -0
- package/courses/docker-container-debugging/scenarios/level-3/overlay-network-debugging.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-3/production-container-ops.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-4/cicd-pipeline-design.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-monitoring-observability.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-orchestration-strategy.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-performance-engineering.yaml +64 -0
- package/courses/docker-container-debugging/scenarios/level-4/container-security-architecture.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-4/enterprise-image-management.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-4/expert-debugging-shift.yaml +63 -0
- package/courses/docker-container-debugging/scenarios/level-4/incident-response-containers.yaml +70 -0
- package/courses/docker-container-debugging/scenarios/level-4/multi-environment-management.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-4/stateful-service-containers.yaml +65 -0
- package/courses/docker-container-debugging/scenarios/level-5/board-infrastructure-strategy.yaml +58 -0
- package/courses/docker-container-debugging/scenarios/level-5/consulting-container-strategy.yaml +61 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-architecture.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-platform-economics.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/container-technology-evolution.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/disaster-recovery-containers.yaml +66 -0
- package/courses/docker-container-debugging/scenarios/level-5/industry-container-patterns.yaml +71 -0
- package/courses/docker-container-debugging/scenarios/level-5/master-debugging-shift.yaml +62 -0
- package/courses/docker-container-debugging/scenarios/level-5/organizational-transformation.yaml +67 -0
- package/courses/docker-container-debugging/scenarios/level-5/regulatory-compliance-containers.yaml +61 -0
- package/courses/github-actions-cicd/course.yaml +10 -0
- package/courses/github-actions-cicd/scenarios/level-1/actions-and-runners.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-1/basic-workflow-syntax.yaml +52 -0
- package/courses/github-actions-cicd/scenarios/level-1/branch-protection-checks.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-1/environment-variables-secrets.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-1/first-cicd-shift.yaml +62 -0
- package/courses/github-actions-cicd/scenarios/level-1/job-dependencies-outputs.yaml +62 -0
- package/courses/github-actions-cicd/scenarios/level-1/simple-ci-pipeline.yaml +57 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-debugging.yaml +90 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-status-notifications.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-1/workflow-triggers.yaml +56 -0
- package/courses/github-actions-cicd/scenarios/level-2/concurrency-control.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-2/conditional-execution.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-2/custom-actions-development.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-2/dependency-caching.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-2/deployment-workflows.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-2/github-packages-publishing.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-2/intermediate-cicd-shift.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-2/matrix-builds.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-2/reusable-workflows.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-2/workflow-cost-optimization.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-3/advanced-cicd-shift.yaml +64 -0
- package/courses/github-actions-cicd/scenarios/level-3/compliance-automation.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-3/docker-action-development.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-3/github-environments.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-3/monorepo-ci.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-3/oidc-cloud-deployments.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-3/release-automation.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-3/security-hardening.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-3/self-hosted-runners.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-3/workflow-optimization.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-data-architecture.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-economics-roi.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-executive-communication.yaml +58 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-incident-response.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-org-design.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-platform-architecture.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-training-program.yaml +65 -0
- package/courses/github-actions-cicd/scenarios/level-4/cicd-vendor-evaluation.yaml +59 -0
- package/courses/github-actions-cicd/scenarios/level-4/enterprise-cicd-governance.yaml +55 -0
- package/courses/github-actions-cicd/scenarios/level-4/expert-cicd-shift.yaml +60 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-ai-future.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-behavioral-science.yaml +70 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-board-strategy.yaml +56 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-consulting-engagement.yaml +61 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-industry-benchmarks.yaml +63 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-ma-integration.yaml +73 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-product-development.yaml +68 -0
- package/courses/github-actions-cicd/scenarios/level-5/cicd-regulatory-landscape.yaml +72 -0
- package/courses/github-actions-cicd/scenarios/level-5/comprehensive-cicd-system.yaml +66 -0
- package/courses/github-actions-cicd/scenarios/level-5/master-cicd-shift.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-2/api-change-review.yaml +82 -0
- package/courses/github-pr-review/scenarios/level-2/automated-review-tooling.yaml +53 -0
- package/courses/github-pr-review/scenarios/level-2/cross-team-review.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-2/intermediate-review-shift.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-2/performance-review-patterns.yaml +99 -0
- package/courses/github-pr-review/scenarios/level-2/review-disagreement-resolution.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-2/review-metrics-analysis.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-2/review-turnaround-sla.yaml +54 -0
- package/courses/github-pr-review/scenarios/level-2/stacked-pr-review.yaml +65 -0
- package/courses/github-pr-review/scenarios/level-3/advanced-review-shift.yaml +65 -0
- package/courses/github-pr-review/scenarios/level-3/ai-powered-review.yaml +58 -0
- package/courses/github-pr-review/scenarios/level-3/compliance-review-process.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-3/cross-functional-review.yaml +60 -0
- package/courses/github-pr-review/scenarios/level-3/incident-driven-review.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-3/large-scale-review-operations.yaml +55 -0
- package/courses/github-pr-review/scenarios/level-3/monorepo-review-process.yaml +68 -0
- package/courses/github-pr-review/scenarios/level-3/review-automation-platform.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-3/review-culture-design.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-3/review-data-pipeline.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/enterprise-review-operations.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-4/expert-review-shift.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/review-data-architecture.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-4/review-economics-roi.yaml +63 -0
- package/courses/github-pr-review/scenarios/level-4/review-executive-communication.yaml +61 -0
- package/courses/github-pr-review/scenarios/level-4/review-incident-postmortem.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-4/review-org-design.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-4/review-platform-architecture.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-4/review-training-program.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-4/review-vendor-evaluation.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-5/comprehensive-review-system.yaml +68 -0
- package/courses/github-pr-review/scenarios/level-5/master-review-shift.yaml +73 -0
- package/courses/github-pr-review/scenarios/level-5/review-ai-future.yaml +69 -0
- package/courses/github-pr-review/scenarios/level-5/review-behavioral-science.yaml +66 -0
- package/courses/github-pr-review/scenarios/level-5/review-board-strategy.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-5/review-consulting-engagement.yaml +62 -0
- package/courses/github-pr-review/scenarios/level-5/review-devtools-product.yaml +71 -0
- package/courses/github-pr-review/scenarios/level-5/review-industry-benchmarks.yaml +64 -0
- package/courses/github-pr-review/scenarios/level-5/review-ma-integration.yaml +76 -0
- package/courses/github-pr-review/scenarios/level-5/review-regulatory-landscape.yaml +78 -0
- package/courses/kubernetes-deployment-troubleshooting/course.yaml +12 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/configmap-secret-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/crashloopbackoff.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/deployment-rollout.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/first-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/health-probe-failures.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/imagepullbackoff.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/kubectl-debugging-basics.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/oomkilled.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/pending-pods.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-1/service-not-reachable.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/dns-resolution-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/helm-deployment-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/hpa-scaling-issues.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/ingress-routing-issues.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/init-container-failures.yaml +63 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/intermediate-troubleshooting-shift.yaml +66 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/network-policy-blocking.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/persistent-volume-issues.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/rbac-permission-denied.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-2/resource-quota-limits.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/advanced-troubleshooting-shift.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/cluster-upgrade-failures.yaml +71 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/gitops-drift-detection.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/job-cronjob-failures.yaml +67 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/monitoring-alerting-gaps.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/multi-container-debugging.yaml +68 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/node-pressure-evictions.yaml +70 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/pod-disruption-budgets.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/service-mesh-debugging.yaml +64 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-3/statefulset-troubleshooting.yaml +69 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/capacity-planning.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/cost-optimization.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/disaster-recovery-design.yaml +56 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/executive-communication.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/expert-troubleshooting-shift.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/incident-management-process.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-cluster-operations.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/multi-tenancy-design.yaml +55 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/platform-engineering.yaml +59 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-4/security-hardening.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/behavioral-science.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/board-strategy.yaml +61 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/cloud-native-future.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/comprehensive-platform.yaml +57 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/consulting-engagement.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/industry-benchmarks.yaml +58 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/ma-integration.yaml +62 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/master-troubleshooting-shift.yaml +73 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/product-development.yaml +65 -0
- package/courses/kubernetes-deployment-troubleshooting/scenarios/level-5/regulatory-compliance.yaml +76 -0
- package/courses/mysql-query-optimization/course.yaml +11 -0
- package/courses/mysql-query-optimization/scenarios/level-1/buffer-pool-basics.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/explain-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-1/innodb-index-fundamentals.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/join-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-1/select-star-problems.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +65 -0
- package/courses/mysql-query-optimization/scenarios/level-2/buffer-pool-tuning.yaml +64 -0
- package/courses/mysql-query-optimization/scenarios/level-2/composite-index-design.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-2/covering-and-invisible-indexes.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/cte-and-window-functions.yaml +78 -0
- package/courses/mysql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-2/join-optimization.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-2/performance-schema-analysis.yaml +69 -0
- package/courses/mysql-query-optimization/scenarios/level-2/query-optimizer-hints.yaml +74 -0
- package/courses/mysql-query-optimization/scenarios/level-2/subquery-optimization.yaml +70 -0
- package/courses/mysql-query-optimization/scenarios/level-2/write-optimization.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
- package/courses/mysql-query-optimization/scenarios/level-3/connection-management.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-3/full-text-search.yaml +77 -0
- package/courses/mysql-query-optimization/scenarios/level-3/json-optimization.yaml +87 -0
- package/courses/mysql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +68 -0
- package/courses/mysql-query-optimization/scenarios/level-3/monitoring-alerting.yaml +63 -0
- package/courses/mysql-query-optimization/scenarios/level-3/online-schema-changes.yaml +79 -0
- package/courses/mysql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +83 -0
- package/courses/mysql-query-optimization/scenarios/level-3/query-profiling-deep-dive.yaml +84 -0
- package/courses/mysql-query-optimization/scenarios/level-3/replication-optimization.yaml +66 -0
- package/courses/mysql-query-optimization/scenarios/level-4/aurora-vs-rds-evaluation.yaml +61 -0
- package/courses/mysql-query-optimization/scenarios/level-4/data-architecture.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/database-migration-planning.yaml +59 -0
- package/courses/mysql-query-optimization/scenarios/level-4/enterprise-governance.yaml +50 -0
- package/courses/mysql-query-optimization/scenarios/level-4/executive-communication.yaml +54 -0
- package/courses/mysql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +67 -0
- package/courses/mysql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +60 -0
- package/courses/mysql-query-optimization/scenarios/level-4/optimizer-internals.yaml +62 -0
- package/courses/mysql-query-optimization/scenarios/level-4/performance-sla-design.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-4/read-replica-scaling.yaml +51 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ai-database-future.yaml +45 -0
- package/courses/mysql-query-optimization/scenarios/level-5/behavioral-science.yaml +44 -0
- package/courses/mysql-query-optimization/scenarios/level-5/benchmark-design.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/board-strategy.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/comprehensive-platform.yaml +49 -0
- package/courses/mysql-query-optimization/scenarios/level-5/consulting-engagement.yaml +52 -0
- package/courses/mysql-query-optimization/scenarios/level-5/ma-database-integration.yaml +47 -0
- package/courses/mysql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +56 -0
- package/courses/mysql-query-optimization/scenarios/level-5/product-development.yaml +48 -0
- package/courses/mysql-query-optimization/scenarios/level-5/regulatory-compliance.yaml +48 -0
- package/courses/postgresql-query-optimization/course.yaml +11 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/explain-analyze-basics.yaml +80 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/first-optimization-shift.yaml +77 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/index-fundamentals.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/join-basics.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/n-plus-one-queries.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/query-rewriting-basics.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/select-star-problems.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/slow-query-diagnosis.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/vacuum-and-statistics.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-1/where-clause-optimization.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/autovacuum-tuning.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/composite-index-design.yaml +81 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/covering-indexes.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/cte-optimization.yaml +83 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/intermediate-optimization-shift.yaml +66 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/join-optimization.yaml +72 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/partial-and-expression-indexes.yaml +75 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/query-planner-settings.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/subquery-optimization.yaml +67 -0
- package/courses/postgresql-query-optimization/scenarios/level-2/window-function-optimization.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/advanced-optimization-shift.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/connection-pooling.yaml +60 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/full-text-search-optimization.yaml +66 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/jsonb-optimization.yaml +88 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/lock-contention-analysis.yaml +80 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/materialized-view-optimization.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/parallel-query-execution.yaml +74 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/partitioning-strategies.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/specialized-index-types.yaml +67 -0
- package/courses/postgresql-query-optimization/scenarios/level-3/write-optimization.yaml +65 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/data-architecture-analytics.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/database-executive-communication.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/database-migration-planning.yaml +57 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/enterprise-database-governance.yaml +52 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/expert-optimization-shift.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/high-availability-architecture.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/optimizer-internals.yaml +69 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/performance-sla-design.yaml +58 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/read-replica-optimization.yaml +62 -0
- package/courses/postgresql-query-optimization/scenarios/level-4/vendor-evaluation.yaml +73 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/comprehensive-database-system.yaml +70 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ai-future.yaml +81 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-behavioral-science.yaml +63 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-board-strategy.yaml +77 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-consulting-engagement.yaml +61 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-industry-benchmarks.yaml +64 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-ma-integration.yaml +71 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-product-development.yaml +72 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/database-regulatory-landscape.yaml +76 -0
- package/courses/postgresql-query-optimization/scenarios/level-5/master-optimization-shift.yaml +66 -0
- package/courses/rest-api-error-handling/course.yaml +11 -0
- package/courses/rest-api-error-handling/scenarios/level-1/authentication-errors.yaml +71 -0
- package/courses/rest-api-error-handling/scenarios/level-1/content-negotiation-errors.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-1/error-logging-basics.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-1/error-response-format.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-1/first-error-handling-shift.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-1/http-status-codes.yaml +46 -0
- package/courses/rest-api-error-handling/scenarios/level-1/not-found-errors.yaml +52 -0
- package/courses/rest-api-error-handling/scenarios/level-1/rate-limiting-errors.yaml +56 -0
- package/courses/rest-api-error-handling/scenarios/level-1/request-validation-errors.yaml +59 -0
- package/courses/rest-api-error-handling/scenarios/level-1/server-error-handling.yaml +55 -0
- package/courses/rest-api-error-handling/scenarios/level-2/api-versioning-errors.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-2/batch-request-errors.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-2/circuit-breaker-pattern.yaml +52 -0
- package/courses/rest-api-error-handling/scenarios/level-2/error-code-taxonomy.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-2/error-monitoring-alerting.yaml +53 -0
- package/courses/rest-api-error-handling/scenarios/level-2/intermediate-error-shift.yaml +69 -0
- package/courses/rest-api-error-handling/scenarios/level-2/pagination-errors.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-2/retry-and-idempotency.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-2/rfc7807-problem-details.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-2/webhook-error-handling.yaml +55 -0
- package/courses/rest-api-error-handling/scenarios/level-3/advanced-error-shift.yaml +72 -0
- package/courses/rest-api-error-handling/scenarios/level-3/api-gateway-errors.yaml +71 -0
- package/courses/rest-api-error-handling/scenarios/level-3/async-api-errors.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-3/caching-error-scenarios.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-3/chaos-engineering-apis.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-3/database-error-handling.yaml +79 -0
- package/courses/rest-api-error-handling/scenarios/level-3/distributed-error-propagation.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-3/error-budgets-sre.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-3/error-correlation.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-3/graphql-vs-rest-errors.yaml +73 -0
- package/courses/rest-api-error-handling/scenarios/level-4/compliance-error-handling.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/enterprise-error-governance.yaml +62 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-analytics-platform.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-cost-optimization.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-executive-communication.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-handling-architecture.yaml +67 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-org-design.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-sla-design.yaml +65 -0
- package/courses/rest-api-error-handling/scenarios/level-4/error-training-program.yaml +61 -0
- package/courses/rest-api-error-handling/scenarios/level-4/expert-error-shift.yaml +63 -0
- package/courses/rest-api-error-handling/scenarios/level-5/comprehensive-error-system.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-ai-future.yaml +75 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-behavioral-science.yaml +73 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-board-strategy.yaml +60 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-consulting-engagement.yaml +58 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-industry-benchmarks.yaml +72 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-ma-integration.yaml +68 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-product-development.yaml +66 -0
- package/courses/rest-api-error-handling/scenarios/level-5/error-regulatory-landscape.yaml +80 -0
- package/courses/rest-api-error-handling/scenarios/level-5/master-error-shift.yaml +73 -0
- package/courses/terraform-infrastructure-setup/course.yaml +11 -0
- package/courses/terraform-infrastructure-setup/scenarios/level-1/terraform-init-errors.yaml +72 -0
- package/dist/cli/commands/add.d.ts.map +1 -1
- package/dist/cli/commands/add.js +6 -5
- package/dist/cli/commands/add.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +4 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/list.d.ts.map +1 -1
- package/dist/cli/commands/list.js +6 -18
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/train.d.ts.map +1 -1
- package/dist/cli/commands/train.js +18 -18
- package/dist/cli/commands/train.js.map +1 -1
- package/dist/cli/index.js +93 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/run-demo.js +2 -1
- package/dist/cli/run-demo.js.map +1 -1
- package/dist/cli/setup.d.ts +18 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +154 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/engine/agent-bridge.d.ts +5 -2
- package/dist/engine/agent-bridge.d.ts.map +1 -1
- package/dist/engine/agent-bridge.js +36 -9
- package/dist/engine/agent-bridge.js.map +1 -1
- package/dist/engine/loader.d.ts +21 -0
- package/dist/engine/loader.d.ts.map +1 -1
- package/dist/engine/loader.js +54 -1
- package/dist/engine/loader.js.map +1 -1
- package/dist/engine/training-loop.d.ts.map +1 -1
- package/dist/engine/training-loop.js +1 -0
- package/dist/engine/training-loop.js.map +1 -1
- package/dist/engine/training.d.ts.map +1 -1
- package/dist/engine/training.js +1 -0
- package/dist/engine/training.js.map +1 -1
- package/dist/generator/skill-generator.d.ts +1 -1
- package/dist/generator/skill-generator.d.ts.map +1 -1
- package/dist/generator/skill-generator.js +21 -2
- package/dist/generator/skill-generator.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -26
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/session-manager.d.ts +9 -4
- package/dist/mcp/session-manager.d.ts.map +1 -1
- package/dist/mcp/session-manager.js +65 -28
- package/dist/mcp/session-manager.js.map +1 -1
- package/dist/types/schemas.d.ts +38 -13
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +9 -5
- package/dist/types/schemas.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: vendor-evaluation
|
|
3
|
+
level: 4
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Evaluate PostgreSQL hosting vendors — compare RDS, Aurora, self-managed, Citus, and other options for enterprise workloads"
|
|
7
|
+
tags: [PostgreSQL, vendor-evaluation, RDS, Aurora, Citus, TCO, expert]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company is evaluating PostgreSQL hosting options for a
|
|
13
|
+
platform migration. The CTO wants a comprehensive comparison
|
|
14
|
+
with TCO analysis over 3 years.
|
|
15
|
+
|
|
16
|
+
Current state: Self-managed PostgreSQL on bare metal
|
|
17
|
+
- 5 database clusters, 20 instances total
|
|
18
|
+
- 10TB total data
|
|
19
|
+
- 100K queries/second peak
|
|
20
|
+
- 3 DBAs managing the infrastructure
|
|
21
|
+
- Annual infrastructure cost: $800K
|
|
22
|
+
- Annual DBA salary cost: $600K
|
|
23
|
+
- Monthly operational incidents: 3 (average)
|
|
24
|
+
|
|
25
|
+
Vendors to evaluate:
|
|
26
|
+
|
|
27
|
+
1. AWS RDS for PostgreSQL:
|
|
28
|
+
- Managed service, automated backups, Multi-AZ
|
|
29
|
+
- db.r6g.4xlarge ($2.46/hr) × 20 instances
|
|
30
|
+
|
|
31
|
+
2. AWS Aurora PostgreSQL:
|
|
32
|
+
- Distributed storage, up to 15 read replicas
|
|
33
|
+
- db.r6g.4xlarge ($3.28/hr) × 10 instances (Aurora needs fewer)
|
|
34
|
+
|
|
35
|
+
3. Self-managed on AWS EC2:
|
|
36
|
+
- Full control, Patroni for HA
|
|
37
|
+
- r6g.4xlarge ($0.81/hr) × 20 instances + EBS storage
|
|
38
|
+
|
|
39
|
+
4. Citus Cloud (Azure):
|
|
40
|
+
- Distributed PostgreSQL, horizontal scaling
|
|
41
|
+
- Multi-tenant SaaS pattern support
|
|
42
|
+
|
|
43
|
+
5. Neon (serverless PostgreSQL):
|
|
44
|
+
- Scale to zero, branching, compute-storage separation
|
|
45
|
+
- Pay per compute-second
|
|
46
|
+
|
|
47
|
+
Evaluation criteria:
|
|
48
|
+
- Total Cost of Ownership (3-year)
|
|
49
|
+
- Performance (latency, throughput)
|
|
50
|
+
- Availability (SLA guarantees)
|
|
51
|
+
- Operational burden (DBA time saved)
|
|
52
|
+
- Migration complexity
|
|
53
|
+
- Lock-in risk
|
|
54
|
+
- Compliance (SOC 2, PCI DSS, HIPAA)
|
|
55
|
+
|
|
56
|
+
Task: Write the vendor evaluation report. Include: the TCO
|
|
57
|
+
comparison (3-year costs including hidden costs), the performance
|
|
58
|
+
benchmark plan, the migration risk assessment per vendor, the
|
|
59
|
+
recommendation with justification, and the executive summary.
|
|
60
|
+
|
|
61
|
+
assertions:
|
|
62
|
+
- type: llm_judge
|
|
63
|
+
criteria: "TCO analysis includes hidden costs — considers not just instance pricing but also storage, IOPS, data transfer, backup storage, DBA time reduction (or increase), migration cost, training, and the cost of vendor lock-in. 3-year totals are calculated for each option"
|
|
64
|
+
weight: 0.35
|
|
65
|
+
description: "Comprehensive TCO analysis"
|
|
66
|
+
- type: llm_judge
|
|
67
|
+
criteria: "Evaluation is balanced — each vendor has pros and cons documented, the recommendation is justified by the company's specific needs (not just cheapest), and lock-in risk is honestly assessed (Aurora's proprietary storage layer, Citus's distributed query limitations)"
|
|
68
|
+
weight: 0.35
|
|
69
|
+
description: "Balanced vendor evaluation"
|
|
70
|
+
- type: llm_judge
|
|
71
|
+
criteria: "Migration risk and operational impact are assessed — estimates migration timeline per vendor, identifies features that don't transfer (extensions, custom configs), and calculates DBA staffing changes (managed services may reduce 3 DBAs to 1, but requires cloud expertise)"
|
|
72
|
+
weight: 0.30
|
|
73
|
+
description: "Migration and operational assessment"
|
package/courses/postgresql-query-optimization/scenarios/level-5/comprehensive-database-system.yaml
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: comprehensive-database-system
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design a comprehensive database platform — architect the complete PostgreSQL infrastructure for a 10,000-engineer organization from provisioning to observability"
|
|
7
|
+
tags: [PostgreSQL, platform, infrastructure, self-service, observability, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the VP of Database Platform at a Fortune 500 company with
|
|
13
|
+
10,000 engineers. The CEO has mandated a "database as a platform"
|
|
14
|
+
initiative — engineers should be able to provision, use, and manage
|
|
15
|
+
databases without filing tickets or waiting for DBAs.
|
|
16
|
+
|
|
17
|
+
Current state (the problem):
|
|
18
|
+
- 500 PostgreSQL databases across 100 teams
|
|
19
|
+
- Average time to provision a new database: 3 weeks (ticket-based)
|
|
20
|
+
- 20 DBAs handling all requests (bottleneck)
|
|
21
|
+
- No self-service: every schema change requires DBA approval
|
|
22
|
+
- Each team configures databases differently
|
|
23
|
+
- Incident response depends on which DBA is on-call (inconsistent)
|
|
24
|
+
- No cost attribution — database costs appear as one lump sum
|
|
25
|
+
|
|
26
|
+
Target state (the vision):
|
|
27
|
+
- Self-service database provisioning in <5 minutes
|
|
28
|
+
- Automated schema change review and deployment
|
|
29
|
+
- Unified observability across all 500 databases
|
|
30
|
+
- Cost attribution to individual teams and services
|
|
31
|
+
- Automated incident detection and remediation
|
|
32
|
+
- DBA team transitions from ticket-taking to platform engineering
|
|
33
|
+
- Compliance and security automatically enforced
|
|
34
|
+
|
|
35
|
+
Platform components to design:
|
|
36
|
+
1. Provisioning layer: Self-service database creation with guardrails
|
|
37
|
+
2. Schema management: GitOps-based schema changes with CI/CD
|
|
38
|
+
3. Query governance: Automated performance review before deployment
|
|
39
|
+
4. Observability: Unified monitoring, alerting, and dashboards
|
|
40
|
+
5. Cost management: Per-team cost tracking and budget alerts
|
|
41
|
+
6. Security: Automated encryption, access control, audit logging
|
|
42
|
+
7. Disaster recovery: Automated backup, tested recovery, failover
|
|
43
|
+
8. Developer experience: CLI tools, documentation, onboarding
|
|
44
|
+
|
|
45
|
+
Constraints:
|
|
46
|
+
- Must support both on-premises and cloud (hybrid)
|
|
47
|
+
- Must integrate with existing CI/CD (Jenkins, GitHub Actions)
|
|
48
|
+
- Must meet SOC 2, PCI DSS, HIPAA compliance
|
|
49
|
+
- Budget: $5M/year for the platform team (20 engineers)
|
|
50
|
+
- Migration timeline: 18 months to onboard all 500 databases
|
|
51
|
+
|
|
52
|
+
Task: Design the database platform. Write: the platform architecture
|
|
53
|
+
(all 8 components), the self-service provisioning design, the
|
|
54
|
+
governance model (what's automated vs what needs human approval), the
|
|
55
|
+
migration strategy (onboarding 500 existing databases), and the
|
|
56
|
+
success metrics for the platform.
|
|
57
|
+
|
|
58
|
+
assertions:
|
|
59
|
+
- type: llm_judge
|
|
60
|
+
criteria: "Platform architecture covers all 8 components — provisioning (Kubernetes operator or Terraform modules), schema management (GitOps with migration tools), query governance (CI/CD integration), observability (centralized metrics, logs, traces), cost management (tagging and attribution), security (automated encryption and RBAC), DR (automated backup testing), and developer experience (CLI, docs, golden path templates)"
|
|
61
|
+
weight: 0.35
|
|
62
|
+
description: "Complete platform architecture"
|
|
63
|
+
- type: llm_judge
|
|
64
|
+
criteria: "Self-service design balances autonomy with governance — engineers can provision databases instantly within guardrails (size limits, approved configurations, automatic security settings), schema changes go through automated review (blocking dangerous operations, approving safe ones), and the governance model defines clear boundaries (what's self-service vs what needs platform team approval)"
|
|
65
|
+
weight: 0.35
|
|
66
|
+
description: "Balanced self-service governance"
|
|
67
|
+
- type: llm_judge
|
|
68
|
+
criteria: "Migration strategy and success metrics are realistic — onboards 500 databases in phases (start with willing teams, then high-value, then mandatory), defines success metrics (provisioning time, incident MTTR, DBA ticket volume, team satisfaction, cost per database), and the 20-engineer platform team structure is defined with clear roles"
|
|
69
|
+
weight: 0.30
|
|
70
|
+
description: "Realistic migration and metrics"
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-ai-future
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Explore the future of AI-powered database optimization — evaluate autonomous tuning, AI query optimization, vector search integration, and the evolving role of DBAs"
|
|
7
|
+
tags: [PostgreSQL, AI, machine-learning, autonomous-tuning, vector-search, future, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your CTO asks you to evaluate how AI will transform PostgreSQL
|
|
13
|
+
operations over the next 3-5 years and recommend which AI-powered
|
|
14
|
+
database technologies to invest in now.
|
|
15
|
+
|
|
16
|
+
Current AI-database landscape:
|
|
17
|
+
|
|
18
|
+
1. Autonomous tuning:
|
|
19
|
+
- OtterTune / DBtune: ML-based parameter tuning
|
|
20
|
+
- They claim 2-5x performance improvement by optimizing postgresql.conf
|
|
21
|
+
- But: tuning 300+ parameters requires understanding workload patterns
|
|
22
|
+
- Question: Is this better than a senior DBA tuning manually?
|
|
23
|
+
|
|
24
|
+
2. AI query optimization:
|
|
25
|
+
- Learned query optimizers (Bao, Neo, Balsa)
|
|
26
|
+
- They replace PostgreSQL's cost-based optimizer with ML models
|
|
27
|
+
- Claim: 50% improvement on complex queries vs traditional optimizer
|
|
28
|
+
- But: require training data, cold start problem, unpredictable behavior
|
|
29
|
+
- Question: Should we replace PostgreSQL's battle-tested optimizer?
|
|
30
|
+
|
|
31
|
+
3. AI-powered indexing:
|
|
32
|
+
- Index advisor tools (Dexter, HypoPG + ML)
|
|
33
|
+
- Automatically recommend indexes based on workload analysis
|
|
34
|
+
- Question: How good are they vs experienced DBA recommendations?
|
|
35
|
+
|
|
36
|
+
4. Vector search in PostgreSQL:
|
|
37
|
+
- pgvector: native vector similarity search
|
|
38
|
+
- pgvectorscale: improved indexing for high-dimensional vectors
|
|
39
|
+
- Use case: Semantic search, RAG, recommendation systems
|
|
40
|
+
- Question: Should we use PostgreSQL for vectors or a dedicated
|
|
41
|
+
vector DB (Pinecone, Weaviate, Qdrant)?
|
|
42
|
+
|
|
43
|
+
5. Natural language to SQL:
|
|
44
|
+
- Text-to-SQL models (GPT-4, Claude, specialized models)
|
|
45
|
+
- Enable non-technical users to query the database
|
|
46
|
+
- But: security risks, performance risks (generated queries may be slow)
|
|
47
|
+
- Question: How to safely deploy text-to-SQL in production?
|
|
48
|
+
|
|
49
|
+
6. Predictive operations:
|
|
50
|
+
- ML models that predict: disk full, replication lag spike, query
|
|
51
|
+
degradation, connection pool exhaustion
|
|
52
|
+
- Proactive alerts before incidents happen
|
|
53
|
+
- Question: What data do we need to collect now to enable this?
|
|
54
|
+
|
|
55
|
+
Your evaluation criteria:
|
|
56
|
+
- Production readiness (can we use it today?)
|
|
57
|
+
- ROI (does the benefit justify the complexity?)
|
|
58
|
+
- Risk (what happens when the AI is wrong?)
|
|
59
|
+
- PostgreSQL compatibility (native extension vs external tool?)
|
|
60
|
+
- Team skill requirements (do we need ML engineers?)
|
|
61
|
+
|
|
62
|
+
Task: Write the technology evaluation. Include: the assessment of
|
|
63
|
+
each AI-database technology (production readiness, ROI, risk), the
|
|
64
|
+
recommended adoption roadmap (what to adopt now, what to watch, what
|
|
65
|
+
to skip), the pgvector strategy (PostgreSQL vs dedicated vector DB),
|
|
66
|
+
the text-to-SQL safety framework, and the prediction of how the DBA
|
|
67
|
+
role evolves with AI.
|
|
68
|
+
|
|
69
|
+
assertions:
|
|
70
|
+
- type: llm_judge
|
|
71
|
+
criteria: "Each technology is honestly assessed — evaluates production readiness realistically (autonomous tuning: semi-ready, learned optimizers: research stage, index advisors: ready for recommendations, pgvector: production-ready for moderate scale, text-to-SQL: risky without guardrails, predictive ops: early but promising). Avoids both hype and dismissiveness"
|
|
72
|
+
weight: 0.35
|
|
73
|
+
description: "Honest technology assessment"
|
|
74
|
+
- type: llm_judge
|
|
75
|
+
criteria: "Adoption roadmap is practical — separates 'adopt now' (pgvector, index advisors, predictive monitoring), 'evaluate' (autonomous tuning, text-to-SQL with guardrails), and 'watch' (learned optimizers). Each recommendation includes implementation complexity, team skill requirements, and expected ROI timeline"
|
|
76
|
+
weight: 0.35
|
|
77
|
+
description: "Practical adoption roadmap"
|
|
78
|
+
- type: llm_judge
|
|
79
|
+
criteria: "DBA role evolution and safety frameworks are addressed — discusses how AI augments rather than replaces DBAs (shift from manual tuning to AI supervision, from reactive to predictive), and the text-to-SQL safety framework includes query validation, cost limits, read-only access, result set limits, and audit logging"
|
|
80
|
+
weight: 0.30
|
|
81
|
+
description: "DBA evolution and safety"
|
package/courses/postgresql-query-optimization/scenarios/level-5/database-behavioral-science.yaml
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-behavioral-science
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Apply behavioral science to database operations — design systems that nudge engineers toward good query practices and prevent performance anti-patterns"
|
|
7
|
+
tags: [PostgreSQL, behavioral-science, nudge-theory, developer-experience, culture, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your organization has 400 engineers writing queries against PostgreSQL.
|
|
13
|
+
Despite documentation, training, and code reviews, the same performance
|
|
14
|
+
anti-patterns keep appearing: SELECT *, missing indexes on foreign keys,
|
|
15
|
+
N+1 queries, unfiltered aggregations on large tables, and long-running
|
|
16
|
+
transactions holding locks.
|
|
17
|
+
|
|
18
|
+
You've tried traditional approaches:
|
|
19
|
+
- Wiki documentation: 15% of engineers read it
|
|
20
|
+
- Quarterly training sessions: Attendance drops 50% after first session
|
|
21
|
+
- Code review checklist: Reviewers skip database items under time pressure
|
|
22
|
+
- Slack channel for DB questions: Same 5 people answer, 10 people ask
|
|
23
|
+
|
|
24
|
+
Anti-pattern frequency (last quarter):
|
|
25
|
+
- SELECT * on tables with 50+ columns: 120 new instances
|
|
26
|
+
- Missing WHERE clause on UPDATE/DELETE: 8 incidents (3 in production)
|
|
27
|
+
- N+1 queries in new endpoints: 45 instances
|
|
28
|
+
- Queries without LIMIT on unbounded result sets: 67 instances
|
|
29
|
+
- ALTER TABLE without CONCURRENTLY on large tables: 12 instances
|
|
30
|
+
- Long transactions (>5 min) blocking autovacuum: 30 incidents
|
|
31
|
+
|
|
32
|
+
Behavioral science concepts to apply:
|
|
33
|
+
1. Choice architecture: Make the right thing the default
|
|
34
|
+
2. Nudge theory: Gentle prompts at the right moment
|
|
35
|
+
3. Feedback loops: Immediate visibility of consequences
|
|
36
|
+
4. Social proof: Show what good teams are doing
|
|
37
|
+
5. Friction: Make bad patterns slightly harder, good patterns easier
|
|
38
|
+
6. Gamification: Make query optimization engaging
|
|
39
|
+
|
|
40
|
+
The VP of Engineering says: "We can't review every query manually.
|
|
41
|
+
We need a system where engineers naturally write good queries without
|
|
42
|
+
needing a DBA to catch every mistake."
|
|
43
|
+
|
|
44
|
+
Task: Design the behavioral system for database excellence. Write:
|
|
45
|
+
the choice architecture (how to make good defaults), the automated
|
|
46
|
+
nudge system (when and how to prompt engineers), the feedback loop
|
|
47
|
+
design (showing query impact in real-time), the social proof
|
|
48
|
+
mechanisms (leaderboards, team comparisons), and the organizational
|
|
49
|
+
change management plan.
|
|
50
|
+
|
|
51
|
+
assertions:
|
|
52
|
+
- type: llm_judge
|
|
53
|
+
criteria: "Choice architecture makes good practices the default — ORM configuration defaults to safe patterns (SELECT with explicit columns, query timeouts, connection limits), migration tools default to CONCURRENTLY for index creation, CI/CD pipeline includes automatic EXPLAIN analysis that flags anti-patterns before merge, and database client libraries include built-in guardrails"
|
|
54
|
+
weight: 0.35
|
|
55
|
+
description: "Effective choice architecture"
|
|
56
|
+
- type: llm_judge
|
|
57
|
+
criteria: "Nudge system intervenes at the right moment — IDE plugins that warn about SELECT * as you type, PR bot that comments with query performance estimates, pre-deploy checks that show estimated query cost, and post-deploy dashboards that attribute latency changes to specific deployments. Nudges are informative, not blocking (most of the time)"
|
|
58
|
+
weight: 0.35
|
|
59
|
+
description: "Well-timed nudge system"
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Feedback loops and social proof create sustainable improvement — real-time query performance dashboard per team, weekly automated reports comparing team query performance, gamification elements (query optimization challenges, leaderboards), and the change management plan addresses resistance (making it fun, not punitive) with measurable success metrics"
|
|
62
|
+
weight: 0.30
|
|
63
|
+
description: "Sustainable feedback and social proof"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-board-strategy
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Present database strategy to the board — frame PostgreSQL infrastructure as a strategic asset, quantify technical debt, and secure multi-year investment"
|
|
7
|
+
tags: [PostgreSQL, board-strategy, investment, technical-debt, governance, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're the CTO presenting the database infrastructure strategy to
|
|
13
|
+
the Board of Directors at the quarterly meeting. The board includes
|
|
14
|
+
3 technical members and 4 non-technical members. You need to secure
|
|
15
|
+
approval for a $5M, 3-year database modernization program.
|
|
16
|
+
|
|
17
|
+
Company context:
|
|
18
|
+
- $200M ARR SaaS platform, 5,000 enterprise customers
|
|
19
|
+
- IPO planned in 18 months
|
|
20
|
+
- Due diligence will examine infrastructure scalability
|
|
21
|
+
- Current database: 30 PostgreSQL clusters, 50TB total
|
|
22
|
+
- 8 DBAs, $3.5M/year database infrastructure cost
|
|
23
|
+
- 3 major outages last year (total 14 hours downtime)
|
|
24
|
+
- Customer-facing latency SLA: 99.9% of requests <200ms
|
|
25
|
+
- Current achievement: 99.2% (SLA breach, contractual penalties possible)
|
|
26
|
+
|
|
27
|
+
The $5M modernization program includes:
|
|
28
|
+
Year 1 ($2M):
|
|
29
|
+
- Consolidate 30 clusters to 15 (eliminate redundancy)
|
|
30
|
+
- Implement automated query review pipeline
|
|
31
|
+
- Deploy comprehensive monitoring (pg_stat_statements, pgwatch2)
|
|
32
|
+
- Partition all tables >100M rows
|
|
33
|
+
- Upgrade all clusters to PG 16
|
|
34
|
+
|
|
35
|
+
Year 2 ($1.8M):
|
|
36
|
+
- Migrate to managed service (Aurora) for 10 clusters
|
|
37
|
+
- Implement multi-region disaster recovery
|
|
38
|
+
- Reduce DBA team from 8 to 5 (3 transition to platform engineering)
|
|
39
|
+
- Achieve 99.95% latency SLA compliance
|
|
40
|
+
|
|
41
|
+
Year 3 ($1.2M):
|
|
42
|
+
- Achieve 99.99% availability
|
|
43
|
+
- Implement auto-scaling for variable workloads
|
|
44
|
+
- Reduce infrastructure cost by 30% through optimization
|
|
45
|
+
- Full self-service database provisioning for engineering teams
|
|
46
|
+
|
|
47
|
+
Expected outcomes:
|
|
48
|
+
- Infrastructure cost: $3.5M/year → $2.5M/year by Year 3
|
|
49
|
+
- Downtime: 14 hours/year → <1 hour/year
|
|
50
|
+
- SLA compliance: 99.2% → 99.99%
|
|
51
|
+
- Engineering velocity: 40% faster feature delivery (less DB bottleneck)
|
|
52
|
+
|
|
53
|
+
Board member concerns:
|
|
54
|
+
- "Why not just move everything to the cloud and let AWS handle it?"
|
|
55
|
+
- "Can't we just hire more DBAs instead of spending $5M?"
|
|
56
|
+
- "What if we delay this until after the IPO?"
|
|
57
|
+
- "How does this compare to what our competitors are doing?"
|
|
58
|
+
|
|
59
|
+
Task: Write the board presentation narrative. Include: the strategic
|
|
60
|
+
framing (database as competitive advantage), the investment case with
|
|
61
|
+
ROI, the risk of inaction (IPO due diligence, SLA penalties, customer
|
|
62
|
+
churn), the phased execution plan, and prepared responses to the 4
|
|
63
|
+
board concerns.
|
|
64
|
+
|
|
65
|
+
assertions:
|
|
66
|
+
- type: llm_judge
|
|
67
|
+
criteria: "Strategic framing resonates with board audience — presents the database as a business asset (not just infrastructure), connects reliability to customer retention and revenue, frames the investment in context of IPO readiness, and uses business language (not technical jargon) for non-technical board members"
|
|
68
|
+
weight: 0.35
|
|
69
|
+
description: "Board-appropriate strategic framing"
|
|
70
|
+
- type: llm_judge
|
|
71
|
+
criteria: "Investment case is compelling — ROI is clearly calculated ($5M investment vs quantified returns: $1M/year cost reduction, avoided SLA penalties, reduced outage costs, IPO readiness), risk of inaction is quantified (SLA penalty exposure, due diligence failure risk, customer churn from outages), and the phased approach reduces execution risk"
|
|
72
|
+
weight: 0.35
|
|
73
|
+
description: "Compelling investment case"
|
|
74
|
+
- type: llm_judge
|
|
75
|
+
criteria: "Board concerns are addressed directly — explains why lift-and-shift to cloud isn't sufficient (still need optimization, higher cost without tuning), why more DBAs don't solve the structural problem, why delaying risks IPO timeline and increases cost, and provides competitive context. Responses are concise and business-focused"
|
|
76
|
+
weight: 0.30
|
|
77
|
+
description: "Board concerns addressed"
|
package/courses/postgresql-query-optimization/scenarios/level-5/database-consulting-engagement.yaml
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-consulting-engagement
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Lead a database consulting engagement — assess a client's PostgreSQL infrastructure, identify optimization opportunities, and deliver a transformation roadmap"
|
|
7
|
+
tags: [PostgreSQL, consulting, assessment, transformation, roadmap, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're a PostgreSQL consulting lead hired by a Series C fintech
|
|
13
|
+
company ($500M valuation) that's experiencing database growing pains.
|
|
14
|
+
They've doubled their engineering team to 200 in the past year, and
|
|
15
|
+
their PostgreSQL infrastructure is struggling to keep up.
|
|
16
|
+
|
|
17
|
+
Client briefing:
|
|
18
|
+
- Company: PayStream (B2B payment processing)
|
|
19
|
+
- Revenue: $80M ARR, growing 100% YoY
|
|
20
|
+
- Transaction volume: 10M transactions/day, projected 50M in 12 months
|
|
21
|
+
- Database: 8 PostgreSQL clusters, 3TB total, mix of PG 13 and PG 15
|
|
22
|
+
- Team: 2 DBAs (both joined <6 months ago), 15 backend engineers
|
|
23
|
+
- Monthly infrastructure cost: $120K (growing 20%/quarter)
|
|
24
|
+
|
|
25
|
+
Assessment findings (your first week):
|
|
26
|
+
1. Performance: 40% of API endpoints exceed 500ms P99 latency
|
|
27
|
+
2. Schema: 15 tables over 1B rows with no partitioning
|
|
28
|
+
3. Indexes: 2,000 indexes total, estimated 40% unused (wasting 400GB)
|
|
29
|
+
4. Queries: Top 50 queries consume 80% of database CPU
|
|
30
|
+
5. Configuration: All 8 clusters use identical postgresql.conf despite
|
|
31
|
+
wildly different workloads (OLTP, reporting, event storage)
|
|
32
|
+
6. Monitoring: Basic CloudWatch only — no query-level visibility
|
|
33
|
+
7. No connection pooling on 5 of 8 clusters
|
|
34
|
+
8. Backups: Daily pg_dump (takes 6 hours), never tested restoration
|
|
35
|
+
9. Version: 3 clusters still on PG 13 (EOL approaching)
|
|
36
|
+
10. No query review process — any engineer can deploy any query
|
|
37
|
+
|
|
38
|
+
The CEO says: "We're spending more on database infrastructure every
|
|
39
|
+
quarter. Our engineers complain the database is slow. Our DBAs are
|
|
40
|
+
overwhelmed. We need a plan to fix this before our Series D."
|
|
41
|
+
|
|
42
|
+
Task: Write the consulting deliverable. Include: the executive
|
|
43
|
+
assessment (current state in business terms), the prioritized
|
|
44
|
+
optimization roadmap (quick wins, medium-term, long-term), the
|
|
45
|
+
staffing and organizational recommendations, the cost projection
|
|
46
|
+
(infrastructure costs with and without optimization), and the risk
|
|
47
|
+
register (what happens if they don't act).
|
|
48
|
+
|
|
49
|
+
assertions:
|
|
50
|
+
- type: llm_judge
|
|
51
|
+
criteria: "Assessment translates technical findings into business impact — quantifies the cost of poor performance (revenue impact of 500ms latency, cost of unused indexes, risk of untested backups), prioritizes findings by business impact, and presents a clear current-state summary that a CEO can understand"
|
|
52
|
+
weight: 0.35
|
|
53
|
+
description: "Business-impact assessment"
|
|
54
|
+
- type: llm_judge
|
|
55
|
+
criteria: "Roadmap is prioritized and realistic — quick wins (drop unused indexes, deploy PgBouncer, tune top 50 queries) deliver measurable improvement in 2-4 weeks, medium-term (partition large tables, upgrade PG 13→16, implement monitoring) in 2-3 months, long-term (query review process, architecture evolution) in 6-12 months. Each phase has estimated cost savings"
|
|
56
|
+
weight: 0.35
|
|
57
|
+
description: "Prioritized optimization roadmap"
|
|
58
|
+
- type: llm_judge
|
|
59
|
+
criteria: "Staffing and cost projections are realistic — recommends DBA team growth or managed service adoption, projects infrastructure costs with optimization (reducing growth rate) vs without (linear extrapolation), and presents a compelling case for investment before Series D (database health as investor due diligence concern)"
|
|
60
|
+
weight: 0.30
|
|
61
|
+
description: "Staffing and cost projections"
|
package/courses/postgresql-query-optimization/scenarios/level-5/database-industry-benchmarks.yaml
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-industry-benchmarks
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Design and interpret database benchmarks — create meaningful PostgreSQL benchmarks, avoid common pitfalls, and use benchmarks for capacity planning and vendor selection"
|
|
7
|
+
tags: [PostgreSQL, benchmarks, TPC, pgbench, performance-testing, capacity-planning, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company needs to make a $2M infrastructure decision — whether to
|
|
13
|
+
migrate from self-managed PostgreSQL to Aurora PostgreSQL. The CTO
|
|
14
|
+
says "run some benchmarks and tell me which is faster." You know that
|
|
15
|
+
naive benchmarking leads to wrong conclusions, so you need to design
|
|
16
|
+
a rigorous benchmark that actually answers the right questions.
|
|
17
|
+
|
|
18
|
+
Context:
|
|
19
|
+
- Current: Self-managed PG 16 on r6g.4xlarge (16 vCPU, 128GB RAM)
|
|
20
|
+
- Candidate: Aurora PG 16 on db.r6g.4xlarge (same compute class)
|
|
21
|
+
- Workload: Mixed OLTP (70% reads, 30% writes), 50K TPS peak
|
|
22
|
+
- Data size: 500GB active dataset, 2TB total
|
|
23
|
+
- Critical queries: Point lookups, range scans, complex joins, bulk inserts
|
|
24
|
+
|
|
25
|
+
Common benchmarking mistakes you've seen teams make:
|
|
26
|
+
1. Using pgbench with default scale factor (fits entirely in RAM)
|
|
27
|
+
2. Benchmarking with empty tables (no realistic data distribution)
|
|
28
|
+
3. Running benchmarks for 5 minutes (not long enough for caches to warm)
|
|
29
|
+
4. Testing on a quiet system (no concurrent workload)
|
|
30
|
+
5. Ignoring storage performance (only testing CPU-bound queries)
|
|
31
|
+
6. Not testing failure scenarios (how does performance degrade under
|
|
32
|
+
replica failure, disk pressure, connection storms?)
|
|
33
|
+
7. Comparing list price vs actual cost (ignoring IOPS charges, data
|
|
34
|
+
transfer, backup costs)
|
|
35
|
+
|
|
36
|
+
Industry standard benchmarks:
|
|
37
|
+
- TPC-C: OLTP transactions (orders, payments, deliveries)
|
|
38
|
+
- TPC-H: Analytical queries (decision support)
|
|
39
|
+
- pgbench: PostgreSQL-specific, configurable
|
|
40
|
+
- sysbench: General-purpose database benchmark
|
|
41
|
+
- HammerDB: TPC-C/TPC-H implementation for PostgreSQL
|
|
42
|
+
|
|
43
|
+
Your VP asks: "Can you give me a number — queries per second on
|
|
44
|
+
Aurora vs self-managed — by Friday?"
|
|
45
|
+
|
|
46
|
+
Task: Design the benchmark plan. Write: the benchmark methodology
|
|
47
|
+
(what to test, how to test, how long), the workload design (realistic
|
|
48
|
+
representation of your actual workload), the metrics to collect and
|
|
49
|
+
how to interpret them, the pitfalls to avoid, and the decision
|
|
50
|
+
framework (how benchmark results translate into the migration decision).
|
|
51
|
+
|
|
52
|
+
assertions:
|
|
53
|
+
- type: llm_judge
|
|
54
|
+
criteria: "Benchmark methodology is rigorous — tests realistic data volume (500GB+ to exceed RAM), runs long enough for steady state (hours, not minutes), includes warm-up phase, tests under concurrent load matching production patterns, and tests both normal operation and degraded modes (replica failure, high connection count)"
|
|
55
|
+
weight: 0.35
|
|
56
|
+
description: "Rigorous benchmark methodology"
|
|
57
|
+
- type: llm_judge
|
|
58
|
+
criteria: "Workload design represents real usage — captures the 70/30 read/write mix, includes representative query types (point lookups, range scans, complex joins, bulk inserts), uses realistic data distributions (not uniform), and tests at multiple concurrency levels (10, 50, 100, 500 connections) to find saturation points"
|
|
59
|
+
weight: 0.35
|
|
60
|
+
description: "Realistic workload design"
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Decision framework goes beyond QPS — considers latency percentiles (P50/P95/P99), throughput under load, cost-per-transaction, operational overhead, failure behavior, and long-term cost trajectory. Acknowledges that benchmarks are one input to the decision alongside operational, compliance, and strategic factors"
|
|
63
|
+
weight: 0.30
|
|
64
|
+
description: "Holistic decision framework"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-ma-integration
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Plan database integration after M&A — merge two companies' PostgreSQL infrastructures while maintaining service continuity"
|
|
7
|
+
tags: [PostgreSQL, M&A, integration, data-migration, schema-merge, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
Your company (AcmePay, $200M ARR) just acquired a competitor
|
|
13
|
+
(QuickBill, $50M ARR). Both run on PostgreSQL. The board mandates
|
|
14
|
+
full technology integration within 12 months. You're leading the
|
|
15
|
+
database integration.
|
|
16
|
+
|
|
17
|
+
AcmePay (acquirer):
|
|
18
|
+
- PostgreSQL 16 on Aurora, 20 clusters, 30TB
|
|
19
|
+
- Well-documented schema, strong naming conventions
|
|
20
|
+
- 500 tables across 8 microservices
|
|
21
|
+
- 100K QPS peak, 99.95% availability
|
|
22
|
+
- PgBouncer, comprehensive monitoring
|
|
23
|
+
- 5 DBAs, mature processes
|
|
24
|
+
|
|
25
|
+
QuickBill (acquired):
|
|
26
|
+
- PostgreSQL 14 on self-managed EC2, 8 clusters, 10TB
|
|
27
|
+
- Organic schema growth, inconsistent naming
|
|
28
|
+
- 300 tables in a monolithic database
|
|
29
|
+
- 20K QPS peak, 99.5% availability
|
|
30
|
+
- No connection pooling, basic monitoring
|
|
31
|
+
- 1 DBA (the founder who wrote the original schema)
|
|
32
|
+
|
|
33
|
+
Integration challenges:
|
|
34
|
+
1. Schema conflicts: Both have "users", "invoices", "payments" tables
|
|
35
|
+
with different schemas, different ID formats (UUID vs serial), and
|
|
36
|
+
overlapping customer IDs
|
|
37
|
+
2. Data overlap: 2,000 customers exist in both systems — their data
|
|
38
|
+
must be merged, not duplicated
|
|
39
|
+
3. Compliance: QuickBill stores PII in plain text; AcmePay encrypts
|
|
40
|
+
at rest and at column level for SSN/tax IDs
|
|
41
|
+
4. Versioning: QuickBill on PG 14 needs upgrade to PG 16
|
|
42
|
+
5. Performance: QuickBill's monolith has 50 queries >10 seconds
|
|
43
|
+
6. Business continuity: Both products must remain operational during
|
|
44
|
+
integration — customers of both products are paying
|
|
45
|
+
7. API contracts: QuickBill's API returns data in different formats;
|
|
46
|
+
3rd-party integrations depend on these formats
|
|
47
|
+
8. Regulatory: Financial data retention requirements (7 years) mean
|
|
48
|
+
historical data must be carefully preserved and mapped
|
|
49
|
+
|
|
50
|
+
The CEO's directive: "I want one database, one platform, one team —
|
|
51
|
+
within 12 months. But we can't lose a single customer or a single
|
|
52
|
+
dollar of data."
|
|
53
|
+
|
|
54
|
+
Task: Write the integration plan. Include: the assessment of both
|
|
55
|
+
systems (gaps and risks), the schema unification strategy, the data
|
|
56
|
+
migration plan (handling overlapping customers), the phased timeline,
|
|
57
|
+
and the risk mitigation plan (what if integration fails mid-way).
|
|
58
|
+
|
|
59
|
+
assertions:
|
|
60
|
+
- type: llm_judge
|
|
61
|
+
criteria: "Schema unification strategy handles conflicts — defines approach for merging users/invoices/payments tables (ID mapping tables, namespace prefixing, or new unified schema), resolves UUID vs serial ID conflict, handles the 2,000 overlapping customers (deduplication strategy with merge rules), and preserves data lineage for regulatory compliance"
|
|
62
|
+
weight: 0.35
|
|
63
|
+
description: "Sound schema unification"
|
|
64
|
+
- type: llm_judge
|
|
65
|
+
criteria: "Phased timeline is realistic — breaks 12 months into phases (assessment, preparation, parallel run, migration, decommission), ensures business continuity at each phase (both products operational), includes PG 14→16 upgrade and PII encryption remediation for QuickBill data, and identifies dependencies between phases"
|
|
66
|
+
weight: 0.35
|
|
67
|
+
description: "Realistic phased timeline"
|
|
68
|
+
- type: llm_judge
|
|
69
|
+
criteria: "Risk mitigation addresses business-critical concerns — rollback plan at each phase, data validation (row counts, financial totals, customer record integrity), parallel running period where both systems serve traffic, and a kill switch to halt integration if customer impact is detected. Addresses API compatibility for 3rd-party integrations"
|
|
70
|
+
weight: 0.30
|
|
71
|
+
description: "Business-critical risk mitigation"
|
package/courses/postgresql-query-optimization/scenarios/level-5/database-product-development.yaml
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
meta:
|
|
2
|
+
id: database-product-development
|
|
3
|
+
level: 5
|
|
4
|
+
course: postgresql-query-optimization
|
|
5
|
+
type: output
|
|
6
|
+
description: "Build a database performance product — design a SaaS tool that helps teams optimize PostgreSQL performance, from architecture to go-to-market"
|
|
7
|
+
tags: [PostgreSQL, product-development, SaaS, performance-monitoring, go-to-market, master]
|
|
8
|
+
|
|
9
|
+
state: {}
|
|
10
|
+
|
|
11
|
+
trigger: |
|
|
12
|
+
You're a technical co-founder building a SaaS product for PostgreSQL
|
|
13
|
+
performance optimization. After 10 years as a DBA, you've seen the
|
|
14
|
+
same problems at every company. You want to productize your expertise.
|
|
15
|
+
|
|
16
|
+
Product vision: "Autopilot for PostgreSQL performance"
|
|
17
|
+
- Connects to any PostgreSQL database (RDS, Aurora, self-managed)
|
|
18
|
+
- Analyzes query performance continuously
|
|
19
|
+
- Recommends and optionally applies optimizations
|
|
20
|
+
- Provides actionable insights (not just dashboards)
|
|
21
|
+
|
|
22
|
+
Competitive landscape:
|
|
23
|
+
- pganalyze: Query performance monitoring ($500-2,000/mo)
|
|
24
|
+
- Datadog Database Monitoring: Part of broader APM ($23/host/mo)
|
|
25
|
+
- New Relic: Database monitoring as part of observability
|
|
26
|
+
- OtterTune: AI-powered tuning (acquired by AWS)
|
|
27
|
+
- Percona PMM: Open-source monitoring
|
|
28
|
+
- pgDash: Simple PostgreSQL monitoring
|
|
29
|
+
|
|
30
|
+
Your differentiation: Not just monitoring — actually fixing problems.
|
|
31
|
+
Every competitor shows you dashboards. You want to show the specific
|
|
32
|
+
query change, the specific index to add, and optionally apply it.
|
|
33
|
+
|
|
34
|
+
Technical challenges:
|
|
35
|
+
1. Data collection: How to gather query plans, statistics, and
|
|
36
|
+
performance data with minimal overhead (<1% CPU)
|
|
37
|
+
2. Analysis engine: How to identify optimization opportunities
|
|
38
|
+
automatically (unused indexes, missing indexes, query rewrites)
|
|
39
|
+
3. Safe recommendations: How to ensure recommendations don't break
|
|
40
|
+
things (test in shadow mode, rollback capability)
|
|
41
|
+
4. Multi-tenant: Each customer's data is sensitive — isolation required
|
|
42
|
+
5. Agent vs agentless: Install agent on customer's server vs connect
|
|
43
|
+
to pg_stat_statements remotely
|
|
44
|
+
|
|
45
|
+
Business model options:
|
|
46
|
+
A. Per-host pricing ($100-500/host/month)
|
|
47
|
+
B. Per-query pricing (based on optimized queries)
|
|
48
|
+
C. Value-based pricing (% of infrastructure cost saved)
|
|
49
|
+
D. Freemium (monitoring free, optimization paid)
|
|
50
|
+
|
|
51
|
+
You have $2M seed funding, 6 engineers, and 12 months to get to
|
|
52
|
+
product-market fit (50 paying customers).
|
|
53
|
+
|
|
54
|
+
Task: Write the product strategy. Include: the product architecture
|
|
55
|
+
(data collection, analysis, recommendation, application), the MVP
|
|
56
|
+
scope (what to build first for fastest path to 50 customers), the
|
|
57
|
+
go-to-market strategy (how to reach PostgreSQL teams), the pricing
|
|
58
|
+
model recommendation, and the technical roadmap (12-month plan).
|
|
59
|
+
|
|
60
|
+
assertions:
|
|
61
|
+
- type: llm_judge
|
|
62
|
+
criteria: "Product architecture is technically sound — data collection uses pg_stat_statements + pg_stat_activity with minimal overhead, analysis engine identifies missing/unused indexes and slow query patterns, recommendations include specific SQL (CREATE INDEX, query rewrites), and the safe application path includes shadow testing and rollback. Multi-tenant data isolation is addressed"
|
|
63
|
+
weight: 0.35
|
|
64
|
+
description: "Sound product architecture"
|
|
65
|
+
- type: llm_judge
|
|
66
|
+
criteria: "MVP scope is focused on fastest path to customers — identifies the highest-value feature to ship first (likely index recommendations or slow query identification), scopes an MVP achievable in 3-4 months with 6 engineers, explains what to cut from v1 (automated application, multi-database support), and defines clear success metrics for product-market fit"
|
|
67
|
+
weight: 0.35
|
|
68
|
+
description: "Focused MVP scope"
|
|
69
|
+
- type: llm_judge
|
|
70
|
+
criteria: "Go-to-market and pricing are realistic — identifies target customer profile (mid-size companies with 5-20 PostgreSQL instances, no dedicated DBA), distribution channels (PostgreSQL community, DevOps conferences, content marketing), pricing model is justified against competitors, and the 12-month roadmap has realistic milestones leading to 50 customers"
|
|
71
|
+
weight: 0.30
|
|
72
|
+
description: "Realistic GTM and pricing"
|