---
title: go-yaml Processing Pipeline Overview
---
flowchart TB
    subgraph LOAD ["LOAD STACK (YAML to Go)"]
        direction TB
        L_bytes[/Raw Bytes/]
        L_reader[Reader]
        L_codepoints[/Code Points UTF-8/]
        L_scanner[Scanner]
        L_tokens[/Tokens/]
        L_parser[Parser]
        L_events[/Events/]
        L_composer[Composer]
        L_nodes_raw[/Nodes - untagged/]
        L_resolver[Resolver]
        L_nodes_tagged[/Nodes - tagged/]
        L_constructor[Constructor]
        L_native[/Native Go Values/]

        L_bytes --> L_reader
        L_reader --> L_codepoints
        L_codepoints --> L_scanner
        L_scanner --> L_tokens
        L_tokens --> L_parser
        L_parser --> L_events
        L_events --> L_composer
        L_composer --> L_nodes_raw
        L_nodes_raw --> L_resolver
        L_resolver --> L_nodes_tagged
        L_nodes_tagged --> L_constructor
        L_constructor --> L_native
    end

    subgraph DUMP ["DUMP STACK (Go to YAML)"]
        direction TB
        D_native[/Native Go Values/]
        D_representer[Representer]
        D_nodes_tagged[/Nodes - tagged/]
        D_desolver[Desolver]
        D_nodes_minimal[/Nodes - minimal tags/]
        D_serializer[Serializer]
        D_events[/Events/]
        D_emitter[Emitter]
        D_codepoints[/Code Points UTF-8/]
        D_writer[Writer]
        D_bytes[/Raw Bytes/]

        D_native --> D_representer
        D_representer --> D_nodes_tagged
        D_nodes_tagged --> D_desolver
        D_desolver --> D_nodes_minimal
        D_nodes_minimal --> D_serializer
        D_serializer --> D_events
        D_events --> D_emitter
        D_emitter --> D_codepoints
        D_codepoints --> D_writer
        D_writer --> D_bytes
    end

    L_native <--> D_native
    L_nodes_tagged <-.-> D_nodes_tagged
    L_events <-.-> D_events
    L_codepoints <-.-> D_codepoints
    L_bytes <-.-> D_bytes
