5.1 KiB
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
- Architect: "Use JWT with refresh tokens, store in httpOnly cookies"
- API Developer: Designs
/auth/login,/auth/refresh,/auth/logoutendpoints with request/response formats - Backend Developer: Implements bcrypt hashing, JWT generation, token validation
Scenario 2: Choosing API Technology
- Architect: "Use GraphQL for mobile app due to flexible queries and bandwidth optimization"
- API Developer: Creates GraphQL schema, resolvers structure, subscription design
- Backend Developer: Implements resolver logic, database queries
Scenario 3: API Rate Limiting
- Architect: "Need rate limiting for API protection"
- API Developer: "100 req/min for free tier, 1000 req/min for paid, per-endpoint limits"
- 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