# How sourdough bread is made

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv21y6m4000wif06d8j4c3nn
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 15 steps across 2 layers
- Persona: Baker
- Technology / systems: Starter (wild yeast), The dough, Oven

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## How sourdough bread is made

Lanes:
- Baker: person / role (id `baker`)
- Starter (wild yeast): technology / system (id `starter`)
- The dough: technology / system (id `dough`)
- Oven: technology / system (id `oven`)

Steps, in the order they run:

1. **Feed the starter flour and water every day** [start; Baker; id `s1`]
   - then Wild yeast and bacteria make gas and acid
2. **Wild yeast and bacteria make gas and acid** [task; Starter (wild yeast); id `s2`]
   - then Is the starter bubbly and doubled in size?
3. **Is the starter bubbly and doubled in size?** [decision; Baker; id `s3`]
   - if "Yes" go to Mix starter, flour, water and salt; if "No" go to Feed the starter flour and water every day
4. **Mix starter, flour, water and salt** [task; Baker; id `s4`]
   - then Rest, then fold the dough every half hour
5. **Rest, then fold the dough every half hour** [task; The dough; id `s5`]
   - then Slow rise for hours as gluten builds
6. **Slow rise for hours as gluten builds** [subprocess; The dough; id `s6`], opens the detail layer "Why dough rises"
   - then Shape the loaf
7. **Shape the loaf** [task; Baker; id `s7`]
   - then Cold proof overnight in the fridge
8. **Cold proof overnight in the fridge** [task; The dough; id `s8`]
   - then Bake hot in a covered pot with steam
9. **Bake hot in a covered pot with steam** [task; Oven; id `s9`]
   - then Crust browns and the bread springs up
10. **Crust browns and the bread springs up** [task; Oven; id `s10`]
   - then Cool before cutting
11. **Cool before cutting** [end; Baker; id `s11`]

```mermaid
flowchart LR
  subgraph l_baker["Baker"]
    n_s1(["Feed the starter flour and water every day"])
    n_s3{"Is the starter bubbly and doubled in size?"}
    n_s4["Mix starter, flour, water and salt"]
    n_s7["Shape the loaf"]
    n_s11(["Cool before cutting"])
  end
  subgraph l_starter["Starter (wild yeast)"]
    n_s2["Wild yeast and bacteria make gas and acid"]
  end
  subgraph l_dough["The dough"]
    n_s5["Rest, then fold the dough every half hour"]
    n_s6[["Slow rise for hours as gluten builds"]]
    n_s8["Cold proof overnight in the fridge"]
  end
  subgraph l_oven["Oven"]
    n_s9["Bake hot in a covered pot with steam"]
    n_s10["Crust browns and the bread springs up"]
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 -->|"Yes"| n_s4
  n_s3 -->|"No"| n_s1
  n_s4 --> n_s5
  n_s5 --> n_s6
  n_s6 --> n_s7
  n_s7 --> n_s8
  n_s8 --> n_s9
  n_s9 --> n_s10
  n_s10 --> n_s11
```

### Why dough rises (detail of step "Slow rise for hours as gluten builds")

Lanes:
- The dough: technology / system (id `dough`)
- Starter (wild yeast): technology / system (id `starter`)

Steps, in the order they run:

1. **Yeast eats the sugars in the flour** [start; Starter (wild yeast); id `r1`]
   - then It releases carbon dioxide gas
2. **It releases carbon dioxide gas** [task; The dough; id `r2`]
   - then Gluten stretches like a net and traps the gas
3. **Gluten stretches like a net and traps the gas** [task; The dough; id `r3`]
   - then The loaf puffs up
4. **The loaf puffs up** [end; The dough; id `r4`]

```mermaid
flowchart LR
  subgraph l_dough["The dough"]
    n_r2["It releases carbon dioxide gas"]
    n_r3["Gluten stretches like a net and traps the gas"]
    n_r4(["The loaf puffs up"])
  end
  subgraph l_starter["Starter (wild yeast)"]
    n_r1(["Yeast eats the sugars in the flour"])
  end
  n_r1 --> n_r2
  n_r2 --> n_r3
  n_r3 --> n_r4
```

## Full data (JSON)

```json
{
  "title": "How sourdough bread is made",
  "maps": {
    "m_rise": {
      "id": "m_rise",
      "lanes": [
        {
          "id": "dough",
          "name": "The dough",
          "type": "system"
        },
        {
          "id": "starter",
          "name": "Starter (wild yeast)",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "r1",
          "kind": "start",
          "lane": "starter",
          "next": [
            {
              "to": "r2"
            }
          ],
          "uses": [],
          "label": "Yeast eats the sugars in the flour"
        },
        {
          "id": "r2",
          "kind": "task",
          "lane": "dough",
          "next": [
            {
              "to": "r3"
            }
          ],
          "uses": [],
          "label": "It releases carbon dioxide gas"
        },
        {
          "id": "r3",
          "kind": "task",
          "lane": "dough",
          "next": [
            {
              "to": "r4"
            }
          ],
          "uses": [],
          "label": "Gluten stretches like a net and traps the gas"
        },
        {
          "id": "r4",
          "kind": "end",
          "lane": "dough",
          "next": [],
          "uses": [],
          "label": "The loaf puffs up"
        }
      ],
      "title": "Why dough rises",
      "parent": {
        "map": "m_root",
        "step": "s6"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "baker",
          "name": "Baker",
          "type": "person"
        },
        {
          "id": "starter",
          "name": "Starter (wild yeast)",
          "type": "system"
        },
        {
          "id": "dough",
          "name": "The dough",
          "type": "system"
        },
        {
          "id": "oven",
          "name": "Oven",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "baker",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "Feed the starter flour and water every day"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "starter",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Wild yeast and bacteria make gas and acid"
        },
        {
          "id": "s3",
          "kind": "decision",
          "lane": "baker",
          "next": [
            {
              "to": "s4",
              "label": "Yes"
            },
            {
              "to": "s1",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is the starter bubbly and doubled in size?"
        },
        {
          "id": "s4",
          "kind": "task",
          "lane": "baker",
          "next": [
            {
              "to": "s5"
            }
          ],
          "uses": [],
          "label": "Mix starter, flour, water and salt"
        },
        {
          "id": "s5",
          "kind": "task",
          "lane": "dough",
          "next": [
            {
              "to": "s6"
            }
          ],
          "uses": [],
          "label": "Rest, then fold the dough every half hour"
        },
        {
          "id": "s6",
          "kind": "subprocess",
          "lane": "dough",
          "next": [
            {
              "to": "s7"
            }
          ],
          "uses": [],
          "child": "m_rise",
          "label": "Slow rise for hours as gluten builds"
        },
        {
          "id": "s7",
          "kind": "task",
          "lane": "baker",
          "next": [
            {
              "to": "s8"
            }
          ],
          "uses": [],
          "label": "Shape the loaf"
        },
        {
          "id": "s8",
          "kind": "task",
          "lane": "dough",
          "next": [
            {
              "to": "s9"
            }
          ],
          "uses": [],
          "label": "Cold proof overnight in the fridge"
        },
        {
          "id": "s9",
          "kind": "task",
          "lane": "oven",
          "next": [
            {
              "to": "s10"
            }
          ],
          "uses": [],
          "label": "Bake hot in a covered pot with steam"
        },
        {
          "id": "s10",
          "kind": "task",
          "lane": "oven",
          "next": [
            {
              "to": "s11"
            }
          ],
          "uses": [],
          "label": "Crust browns and the bread springs up"
        },
        {
          "id": "s11",
          "kind": "end",
          "lane": "baker",
          "next": [],
          "uses": [],
          "label": "Cool before cutting"
        }
      ],
      "title": "How sourdough bread is made",
      "parent": null
    }
  }
}
```
