System Design/
Lesson

You have learned how to identify constraints and estimate costs by hand. Now let's talk about where AI fits into this process. AI assistants are surprisingly good at some parts of constraint identification and dangerously bad at others. Knowing the difference is a real skill.

What AI does well vs. what it does poorly

AI pitfall
AI will confidently generate cost estimates using outdated pricing. Cloud providers change prices quarterly, and AI training data lags behind. Always verify numbers against the provider's current pricing page before committing to a budget.
AI does wellAI does poorly
Back-of-envelope calculations (RPS, storage, bandwidth)Understanding your actual business context
Listing NFRs from a requirements documentKnowing your team's real constraints and skills
Comparing cloud service pricing across providersEstimating actual user behavior patterns
Generating SLA tables and uptime calculationsPredicting growth accurately for your product
Spotting missing requirements you forgot to mentionUnderstanding organizational politics and priorities
Converting between units (DAU to RPS, storage to cost)Knowing your existing infrastructure and tech debt

The pattern is clear: AI is great at mechanical, knowledge-heavy tasks. It falls apart when context about your specific situation matters.

02

Prompt templates and example outputs

Prompt 1: Extract non-functional requirements

Given these requirements, identify all non-functional requirements
and constraints. Organize them by category (scale, latency,
availability, cost, security, compliance).

Requirements:
- Online food ordering platform for a mid-size city (500K population)
- Users can browse restaurants, place orders, track delivery
- Restaurants manage their menus and accept/reject orders
- Delivery drivers see available orders and navigate to addresses
- Payment processing via Stripe
- Launch in 3 months with a team of 4 developers

What AI typically returns (and it is genuinely useful):

// AI-generated constraint analysis
const constraints = {
  scale: {
    estimatedDAU: "5,000-15,000 (1-3% of city population)",
    peakRPS: "50-150 (lunch and dinner rushes)",
    storageYear1: "~50 GB (menus, images, order history)",
    concurrentUsers: "500-1,500 during peak hours"
  },
  latency: {
    menuBrowsing: "< 200ms (users abandon slow food apps)",
    orderPlacement: "< 1s (critical transaction)",
    locationTracking: "< 3s update interval",
    searchResults: "< 500ms"
  },
  availability: {
    target: "99.9% (8.76 hours downtime/year)",
    reasoning: "Downtime during meal hours directly loses revenue",
    criticalPaths: ["order placement", "payment processing"]
  },
  security: {
    pci: "Stripe handles PCI compliance, but secure token storage",
    pii: "User addresses, phone numbers require encryption at rest",
    gdpr: "If EU users possible, need data deletion capability"
  },
  teamConstraints: {
    developers: 4,
    timeline: "3 months",
    implication: "Must use managed services, no time for custom infra"
  }
};

This is a solid starting point. The AI remembered PCI compliance, GDPRWhat is gdpr?A European regulation that gives users control over their personal data, including the right to access, delete, and export it. considerations, and estimated reasonable scale numbers for a mid-size city. You would have spent 30 minutes arriving at the same list.

Prompt 2: Infrastructure cost estimation

Estimate monthly infrastructure costs for:
- A food delivery platform
- 10,000 DAU, 100 RPS at peak
- Image-heavy (restaurant photos, menu items)
- Real-time location tracking for drivers
- Hosted on AWS, us-east-1

Break down by service and show your math.

AI output you can expect:

Compute:
  2x t3.medium (API servers)     = 2 × $32  = $64
  1x t3.small (background jobs)  = 1 × CODE_BLOCK6  = CODE_BLOCK6

Database:
  RDS PostgreSQL db.t3.medium    = $65
  ElastiCache Redis t3.micro     = CODE_BLOCK3 (session + driver locations)

Storage:
  S3: 200 GB images × $0.023     = $4.60
  EBS: 3 × 30 GB × $0.10        = $9

Data Transfer:
  Image serving: ~800 GB × $0.09 = $72
  API responses: ~200 GB × $0.09 = CODE_BLOCK8

Other:
  ALB load balancer              = $22
  CloudWatch + logs              = CODE_BLOCK5
  Route 53 DNS                   = $2
  SSL certificate (ACM)          = Free

TOTAL: ~$301/month

Prompt 3: Scale-driven architecture decisions

What scale-related architecture decisions should I make for a system
with 10,000 DAU? Specifically:
- Do I need a load balancer?
- Do I need caching (Redis/Memcached)?
- Do I need a CDN?
- Do I need read replicas for my database?
- Do I need message queues?

For each, answer yes/no and explain why at THIS scale.

This prompt is powerful because it forces the AI to reason about your specific scale rather than defaulting to "yes, add everything." At 10K DAU, the honest answer is: you probably need a CDNWhat is cdn?Content Delivery Network - a network of servers around the world that caches your files and serves them from the location closest to the user, making pages load faster. for images, maybe a small Redis for sessions, but you definitely do not need read replicas or message queues yet.

Good to know
The best prompts for constraint identification include hard numbers. "Build a food delivery app" gets you generic advice. "Build a food delivery app for a city of 500K, targeting 10K DAU in month 6, with a $300/month infra budget" gets you actionable constraints.
03

What to verify: where AI gets it wrong

AI has predictable blind spots when identifying constraints. Watch out for these:

1. AI overestimates scale needs for startups.
If you tell AI you are building "a social network," it starts thinking in terms of millions of users. Your MVP has 200 users. Always anchor the AI with explicit numbers: "We expect 500 users in month one, growing to 5,000 by month six."

2. AI underestimates data transfer costs.
In the cost estimation above, the AI calculated $90 for data transfer. In practice, with images, APIWhat is api?A set of rules that lets one program talk to another, usually over the internet, by sending requests and getting responses. responses, logging to external services, and webhookWhat is webhook?An HTTP request that a service sends to your server when a specific event occurs, like a payment completing. Your server processes the event automatically. callbacks, you could easily hit $150-200. Multiply the AI's data transfer estimate by 1.5-2x.

3. AI does not know your team.
AI might suggest Kubernetes for orchestration because it is "the standard." But if your team of 3 has never touched Kubernetes, the learning curve alone adds 2 months to your timeline. Always filter AI suggestions through: "Can my team actually operate this?"

4. AI forgets operational costs.
The monthly bill is not just infrastructure. Factor in:

const realMonthlyCost = {
  infrastructure: 301,        // What AI estimated
  monitoring: 30,              // Datadog, Sentry, etc.
  ciCd: 15,                    // GitHub Actions minutes
  domainAndEmail: 15,          // Domain, transactional email
  thirdPartyAPIs: 50,          // Maps, SMS, payment fees
  developerTime: "priceless",  // The biggest cost AI ignores
  actualTotal: "~$411 + human time"
};

5. AI defaults to AWS pricing.
Unless you specify otherwise, AI almost always quotes AWS. For startups, alternatives like Railway, Render, or Fly.io can be 50-70% cheaper at small scale. Always ask: "What would this cost on [specific platform] instead?"

04

The hybrid workflow

Here is the workflow that actually works in practice:

Step 1: AI generates the constraint list.
Feed your requirements document (or even rough notes) to AI. Ask it to identify every non-functional requirement, organized by category. This takes 30 seconds instead of 30 minutes.

Step 2: You validate against business reality.
Go through each constraint the AI identified and ask:

  • Is this scale estimate realistic for our actual situation?
  • Does my team have the skills to build and operate this?
  • Does the budget allow for this level of availability?
  • Is this compliance requirement actually relevant to us?

Cross out anything that does not match reality. Add anything the AI missed about your specific context (existing systems, organizational constraints, contractual obligations).

Step 3: AI does the cost math.
Take the validated constraint list and ask AI to estimate infrastructure costs. It is excellent at this mechanical work: looking up instance pricing, calculating storage costs, estimating bandwidthWhat is bandwidth?How much data can flow through a connection at once - like the number of lanes on a highway rather than the speed limit..

Step 4: You sanity-check the numbers.
Apply the correction factors: multiply data transfer by 1.5x, add 30% for operational overhead the AI forgot, and verify that the total fits your actual budget.

// The hybrid workflow in code
function identifyConstraints(requirements) {
  // Step 1: AI generates first pass
  const aiConstraints = askAI(
    `Identify all NFRs and constraints for: ${requirements}`
  );

  // Step 2: Human validates
  const validated = aiConstraints.filter(constraint =>
    matchesBusinessReality(constraint) &&
    teamCanHandle(constraint) &&
    budgetAllows(constraint)
  );

  // Step 3: AI estimates costs
  const costEstimate = askAI(
    `Estimate monthly costs for: ${JSON.stringify(validated)}`
  );

  // Step 4: Human applies correction factors
  return {
    constraints: validated,
    estimatedCost: costEstimate.total * 1.3, // 30% buffer
    dataTransferCost: costEstimate.dataTransfer * 1.5
  };
}

This workflow gives you the speed of AI with the judgment of a human. The AI handles the parts it is good at (comprehensive listing, math, pricing lookups) while you handle the parts it cannot do (business context, team reality, budget pressure). Neither alone produces great results. Together, you get a constraint analysis in minutes that would take hours by hand and is grounded in your actual situation.

Edge case
If you ask AI to estimate costs for a multi-region deployment, it will often forget inter-region data transfer fees. Replicating data between us-east-1 and eu-west-1 costs $0.02/GB, which sounds small until you have terabytes of database replication traffic.