This document tracks open questions, decisions to be made, and areas that need clarification as we implement the AEP.dev compliant TypeSpec project.
- Question: Should we include product variants (different sizes, colors, etc.) as sub-resources or as a separate resource?
- AEP Impact: Affects resource path structure (AEP-122)
- Options:
- Sub-resource:
/products/{productId}/variants - Separate resource:
/productVariantswith product reference
- Sub-resource:
- Decision Needed: Before implementing product models
- Question: What is the maximum depth for category hierarchies?
- AEP Impact: Affects wildcard operations (AEP-122)
- Options:
- Unlimited depth with recursion
- Fixed maximum depth (e.g., 5 levels)
- Dynamic depth based on business rules
- Decision Needed: Before implementing category models
- Question: Should inventory be a sub-resource of products or a separate resource?
- AEP Impact: Affects resource path structure and batch operations
- Options:
- Sub-resource:
/products/{productId}/inventory - Separate resource:
/inventorywith product reference - Hybrid approach with both
- Sub-resource:
- Decision Needed: Before implementing inventory models
- Question: Which specific error codes should we implement beyond the basic HTTP status codes?
- AEP Impact: Error handling consistency
- Options:
- Google Cloud API error codes
- Custom business-specific error codes
- AEP standard error code set
- Decision Needed: Before implementing error models
- Question: Should we support both cursor-based and offset-based pagination?
- AEP Impact: AEP-131 compliance
- Options:
- Cursor-based only (recommended by AEP)
- Offset-based only
- Both with preference for cursor-based
- Decision Needed: Before implementing pagination models
- Question: For which batch operations should we require transactional support?
- AEP Impact: AEP-232-235 compliance
- Options:
- All batch operations require transactional
- Only critical operations (delete, update)
- Optional for all operations
- Decision Needed: Before implementing batch operations
- Question: Which TypeSpec version should we target for production?
- Impact: Feature availability and stability
- Options:
- Latest stable version
- LTS version if available
- Specific version for compatibility
- Decision Needed: Before setting up project configuration
- Question: Should we generate both OpenAPI 3.0 and 3.1 specifications?
- Impact: Tool compatibility and AEP compliance
- Options:
- OpenAPI 3.0 only (more widely supported)
- OpenAPI 3.1 only (latest standard)
- Both versions
- Decision Needed: Before configuring TypeSpec compiler
- Question: What validation rules should we implement for AEP compliance?
- Impact: Code quality and compliance checking
- Options:
- Custom TypeSpec linting rules
- OpenAPI validation tools
- AEP-specific compliance checkers
- Decision Needed: Before implementing validation pipeline
- Question: What are the valid product lifecycle states and transitions?
- Impact: State management patterns
- Options:
- Draft → Active → Discontinued
- Draft → Active → Inactive → Discontinued
- Custom business-specific states
- Decision Needed: Before implementing product models
- Question: What is the complete order status workflow?
- Impact: State machine implementation
- Options:
- Simple: Pending → Confirmed → Shipped → Delivered
- Complex: Multiple intermediate states and rollback options
- Custom business workflow
- Decision Needed: Before implementing order models
- Question: What privacy and data protection requirements should we model?
- Impact: Customer resource design
- Options:
- Basic GDPR compliance
- Full privacy framework
- No specific privacy requirements
- Decision Needed: Before implementing customer models
- Question: How complex should our examples be to demonstrate AEP patterns?
- Impact: Documentation clarity and usefulness
- Options:
- Simple examples for clarity
- Complex real-world scenarios
- Both simple and complex examples
- Decision Needed: Before creating examples
- Question: Should we create separate documentation for each AEP pattern implemented?
- Impact: Documentation organization
- Options:
- Single comprehensive guide
- Pattern-specific documentation
- Hybrid approach with overview and details
- Decision Needed: Before planning documentation structure
- Question: How should we handle updates to AEP specifications during development?
- Impact: Project timeline and compliance
- Options:
- Freeze AEP versions for project duration
- Adapt to updates as they occur
- Plan for version migration
- Decision Needed: Before starting implementation
- Question: Which tools should we integrate for AEP compliance validation?
- Impact: Development workflow and quality assurance
- Options:
- OpenAPI validation tools
- Custom AEP compliance checkers
- Manual review process
- Decision Needed: Before setting up validation pipeline
- Resource Selection: Products & Inventory Management system
- Project Structure: TypeSpec-based implementation
- AEP Standards: Focus on AEP-131, AEP-122, AEP-232-235
- Product resource structure (Question 1)
- Category hierarchy depth (Question 2)
- Inventory resource scope (Question 3)
- Error code standardization (Question 4)
- Pagination implementation (Question 5)
- Batch operation transactional support (Question 6)
- Week 1: Review resource design questions (1-3)
- Week 2: Review AEP compliance questions (4-6)
- Week 3: Review technical implementation questions (7-9)
- Week 4: Review business logic questions (10-12)
- Week 5: Review documentation questions (13-14)
- Week 6: Review external dependency questions (15-16)
- Schedule review meetings for each question category
- Research AEP specifications for specific guidance
- Consult with stakeholders for business logic decisions
- Evaluate tool options for technical implementation
- Create decision matrix for complex questions
- Document rationale for all decisions made