Skip to content

Phase 4 — Product Service (REST CRUD)

🏷️ Domain Focus

Primary: 🏪 eCommerce - Product catalog management
Architecture Reference: 01-ARCHITECTURE/domains/ecommerce/DOMAIN_ECOMMERCE_ARCHITECTURE.md
Protocol Focus: 🌐 Advanced REST patterns (HATEOAS, pagination, filtering)

Epic Integration: Product Service (18 Story Points)

Epic Objective: Build comprehensive product catalog management service with CRUD operations and data validation
Success Criteria: Product entity with audit fields, REST API with full CRUD, data validation and error handling, database integration, 1000 products searchable in <500ms, complete API documentation

Objectives

  • Build product catalog service with REST CRUD and solid validation.
  • Learning Focus: Advanced REST patterns - pagination, filtering, validation, HATEOAS.

Deliverables

  • product-service/openapi/product.yaml
  • Product service code + tests
  • Product catalog management with performance requirements

Tasks (acceptance)

1) Contract-first API (Advanced REST Learning) - [ ] CRUD paths defined; validation and error model - [ ] Implement pagination for GET /products (page, size, sort) - [ ] Add filtering capabilities (category, price range) - [ ] Practice HATEOAS principles in responses - [ ] Files: product-service/openapi/product.yaml - [ ] Story Points: 4 pts (Design Product entity with audit fields)

2) Implement service with Full CRUD - [ ] Entities, migrations, repository, service, controller - [ ] Validation and consistent errors - [ ] Unit + integration tests - [ ] Module: bv-eCommerce-core/product-service - [ ] Story Points Breakdown: - Create REST API controllers with CRUD (4 pts) - Implement data validation and error handling (3 pts)
- Setup database integration and migrations (4 pts) - Build repository and service layers (3 pts) - [ ] Acceptance: Request validation, consistent error responses, containerized Postgres tests

3) Protocol Lab Continuation - [ ] Test idempotency for PUT operations - [ ] Implement proper ETags for optimistic locking - [ ] Add comprehensive error handling examples - [ ] Performance Requirement: 1000 products searchable in <500ms

4) Docs & Collection - [ ] REST examples documented; Postman/Insomnia collection committed - [ ] Files: docs/03-DEVELOPMENT/microservices-patterns.md (REST section)

Dependencies - Phase 3

Learning & References - Reference Topics (Protocols & Concurrency)

Next Phase: Phase 5