Architecture Drivers

1. Design purpose

The first version is a validation instrument, not the finished platform: it must prove consumers use it and come back. Brand monetization follows from that signal.

Validation target Evidence
Consumer traction At least 50 accounts and the scan latency defined by QAS-1.
Brand interest One LOI or pilot.
Data access Open Food Facts plus one producer-managed source.

2. Primary functionality

The original validation scope concentrated on four flows (Stories). Shopping, history, recipes and account-management stories were added later and are tracked in that backlog.

  • Scan, resolve, decide: anonymous scan needs no login; an account and consent-gated profile unlock the personal verdict.
  • Fridge and expiry tracking: save scanned products, sort by freshness, mark used or discarded.
  • Multi-source product data: labels and sections arrive through source adapters, not hard-coded sources.
  • Engagement to brand view: raw consumer facts are aggregated before Brand Analytics sees them.

Cut, not deferred: points, rewards, lottery, and dormant gamification hooks.

The prioritized quality attributes and the scenarios that make them testable live in ASRs.

3. Constraints

  • GDPR: health profiles need explicit, recorded consent; brands receive only privacy-thresholded aggregates; erasure must be verifiable.
  • Regulatory context: the EU's Digital Product Passport is introduced progressively through product-specific legislation and delegated acts. PackyTrace does not claim that ESPR currently mandates a passport for food. See the European Commission DPP overview.
  • Delivery baseline: Startup Day on June 24, 2026 closed the original MVP phase.
  • Integration: support Open Food Facts and independent producer sources through replaceable adapters; no source provider may become a domain dependency.
  • Capacity: the MVP validates tens of consumers and a few brands. Load assumptions must state concurrency and traffic shape before they are used for sizing.

4. Architectural concerns

  • Source adapters: map provider-specific schemas and behavior behind Product Passport ports; do not expose those schemas to the application core.
  • Service structure: keep services independently deployable and enforce the layout assigned to each service's language.
  • Privacy wall: raw per-visitor facts remain on the consumer side; Brand Analytics receives only minimum-group-size aggregate batches without consumer identifiers.
  • Tenancy: brand-owned records carry a brand reference, and service queries require tenant scope.
  • Consumer identity: anonymous scans must be supported.