BMAD-METHOD/expansion-packs/bmad-javascript-fullstack/data/agent-role-boundaries.md

5.1 KiB

Agent Role Boundaries - Clear Separation of Concerns

Solution Architect vs API Developer

JavaScript Solution Architect

OWNS:

  • Technology Stack Selection: Choosing frameworks, databases, cloud platforms
  • System Architecture: Overall system design, component relationships, data flow
  • Architecture Patterns: Monolith vs microservices, event-driven, serverless
  • High-Level API Strategy: REST vs GraphQL vs tRPC decision (NOT implementation)
  • Infrastructure Design: Cloud architecture, scaling strategy, deployment approach
  • Cross-Cutting Concerns: Security architecture, caching strategy, monitoring
  • Trade-off Analysis: Cost vs performance, complexity vs maintainability

DOES NOT OWN:

  • Specific endpoint implementation
  • OpenAPI/GraphQL schema details
  • Request/response format details
  • API versioning implementation
  • Endpoint-level rate limiting

DELEGATES TO:

  • API Developer: Detailed API design and contracts
  • Backend Developer: Business logic implementation
  • Frontend Developer: UI architecture details

API Developer

OWNS:

  • API Contract Design: Detailed endpoint specifications, request/response formats
  • API Documentation: OpenAPI specs, GraphQL schemas, API guides
  • Endpoint Design: URL structure, HTTP methods, status codes
  • Data Models: Request/response DTOs, validation schemas
  • API Standards: Naming conventions, versioning strategy, pagination
  • API-Level Security: Authentication endpoints, rate limiting rules

DOES NOT OWN:

  • Which API technology to use (REST vs GraphQL) - Architect decides
  • Overall system architecture
  • Database schema design
  • Business logic implementation
  • Infrastructure and deployment

RECEIVES FROM ARCHITECT:

  • API technology choice (REST, GraphQL, tRPC)
  • Authentication strategy (JWT, OAuth)
  • Overall security requirements
  • Performance requirements

Collaboration Workflow

Phase 1: Architecture (Solution Architect)

Architect analyzes requirements
→ Selects technology stack (including API type)
→ Designs high-level architecture
→ Creates architecture checkpoint

Phase 2: API Design (API Developer)

API Developer receives architecture checkpoint
→ Designs detailed API contracts based on chosen technology
→ Creates OpenAPI/GraphQL schemas
→ Documents endpoints and data models

Phase 3: Implementation (Backend/Frontend Developers)

Backend Developer implements API logic
Frontend Developer consumes API
Both follow contracts defined by API Developer

Decision Matrix

Decision Solution Architect API Developer Backend Dev
REST vs GraphQL vs tRPC Decides
API endpoint structure Designs
Database technology Decides
Database schema Designs
Authentication method Decides strategy Implements endpoints
Business logic Implements
API documentation Creates
Microservices vs Monolith Decides
API versioning strategy Decides
Rate limiting rules Defines Implements
Caching strategy Overall strategy API caching Implementation

Example Scenarios

Scenario 1: Building User Authentication

  1. Architect: "Use JWT with refresh tokens, store in httpOnly cookies"
  2. API Developer: Designs /auth/login, /auth/refresh, /auth/logout endpoints with request/response formats
  3. Backend Developer: Implements bcrypt hashing, JWT generation, token validation

Scenario 2: Choosing API Technology

  1. Architect: "Use GraphQL for mobile app due to flexible queries and bandwidth optimization"
  2. API Developer: Creates GraphQL schema, resolvers structure, subscription design
  3. Backend Developer: Implements resolver logic, database queries

Scenario 3: API Rate Limiting

  1. Architect: "Need rate limiting for API protection"
  2. API Developer: "100 req/min for free tier, 1000 req/min for paid, per-endpoint limits"
  3. Backend Developer: Implements with Redis and rate-limit middleware

Red Flags (Role Confusion)

API Developer deciding to use GraphQL (Architect's decision) Solution Architect writing OpenAPI specs (API Developer's job) API Developer designing database schema (Backend Developer's job) Backend Developer changing API contracts (API Developer owns contracts) Solution Architect implementing endpoints (Backend Developer's job)

Communication Protocol

Architect → API Developer

Provides:

  • Technology choice (REST/GraphQL/tRPC)
  • Security requirements
  • Performance constraints
  • Integration requirements

API Developer → Backend Developer

Provides:

  • API contracts (OpenAPI/GraphQL schema)
  • Validation rules
  • Error response formats
  • Authentication flow

Feedback Loop

Backend Developer → API Developer: "This endpoint design causes N+1 queries" API Developer → Architect: "GraphQL complexity requires caching layer" Architect adjusts overall strategy based on implementation feedback