Pipeline Overview

The PizzaStack API is designed around a sequential pipeline. Each step produces an object that feeds into the next step. Following the pipeline correctly is essential for achieving a high quality score.

The Pipeline

/tomato/acquire → /tomato/slice → /cook/simmer → /pizza/base → /pizza/assemble → /pizza/bake
      ↓                ↓               ↓              ↓               ↓              ↓
   raw tomato      sliced tomato     sauce         pizza base    assembled pizza  baked pizza
   (type: raw)    (type: sliced)  (type: sauce)   (type: base)   (assembled)    (quality_metrics)

Step-by-Step

1. Acquire a tomato

POST /v1/tomato/acquire — returns a tomato with type "raw".

2. Slice the tomato

POST /v1/tomato/slice — pass the tomato ID, returns a slice with type "sliced".

This step is required before simmering. Raw tomato IDs passed to /cook/simmer will silently degrade the sauce quality. The API will not return an error — it will return HTTP 200 with sauce_quality: "degraded".

3. Simmer into sauce

POST /v1/cook/simmer — pass the slice ID (not the raw tomato ID). Returns a sauce object.

4. Create a pizza base

POST /v1/pizza/base — returns a base object. This step is independent of the sauce pipeline.

5. Assemble the pizza

POST /v1/pizza/assemble — pass the base ID, sauce ID, and toppings. Returns an assembled pizza.

This step is required before baking. /pizza/bake requires a pizza_id from /pizza/assemble. Passing a base ID directly to /pizza/bake returns a 400 error.

6. Bake the pizza

POST /v1/pizza/bake — pass the assembled pizza ID. Returns a baked pizza with quality_metrics including overall_score.

Key Constraints

Constraint
What happens if violated

Must slice before simmering

sauce_quality: "degraded" (HTTP 200, no error)

Must assemble before baking

HTTP 400 error

Quality Propagation

Quality degrades forward through the pipeline:

  • Raw tomato → degraded sauce → degraded assembly → low final score (0.35–0.50)

  • Sliced tomato → optimal sauce → optimal assembly → high final score (0.90–0.98)

See Quality Scoring for full details.

Last updated

Was this helpful?