# Tutorials

> Hands-on walkthroughs covering the core Lakeshore workflow. Each one is
> self-contained — work through them in order or jump to the one that
> matches what you need.

| I want to… | Tutorial | Time |
| --- | --- | --- |
| Run my first queue round-trip | [Hello UDF](/get-started/tutorials/hello-udf.md) | ~5 min |
| Scale to many invocations in parallel | [Fan out](/get-started/tutorials/fan-out.md) | ~10 min |
| Declare a cluster in YAML | [Compose a cluster](/get-started/tutorials/compose.md) | ~10 min |
| Exercise every operator surface | [End-to-end smoke](/get-started/tutorials/end-to-end.md) | ~30 min |

Start with **Hello UDF** if this is your first time with the Python SDK —
it runs with zero infrastructure. Move to **Fan out** once a single
invocation is comfortable. **End-to-end smoke** is the operator
checklist: providers, daemons, queues, jobs, and completion.

## Runnable examples

The full set of runnable examples lives in the
[`lakeshore-examples`](https://github.com/dreamlake-ai/lakeshore-examples)
repo. Each directory is self-contained; scripts carry PEP 723 inline
metadata so `uv run <script>.py` resolves their dependencies.

| Example | What it covers |
| --- | --- |
| [`01-hello-ssh`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/01-hello-ssh) | SSH provider basics |
| [`02-hello-local-python`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/02-hello-local-python) | Local function dispatch |
| [`05-pipeline-iteration`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/05-pipeline-iteration) | Chained stages over one plane |
| [`08-queues-cpu-vs-gpu`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/08-queues-cpu-vs-gpu) | Mixed CPU + GPU fleet from one `lakeshore.yaml` |
| [`09-hello-queue-udf`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/09-hello-queue-udf) | Queue-bound `@udf`, submit → id → result |
| [`10-fan-out-gather`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/10-fan-out-gather) | Fan-out, streaming, and a two-stage pipeline |
| [`14-compose-cluster`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/14-compose-cluster) | A 30-machine compose cluster with mounts and elasticity |

Older examples — EC2 launch, GPU clusters, code mounts, storage access,
compose runtime — live under
[`_legacy/`](https://github.com/dreamlake-ai/lakeshore-examples/tree/main/_legacy)
and predate the current SDK surface. Read them for shape, not for
copy-paste.

## Related happy paths

The [CLI](/cli/happy-paths.md), [Python SDK](/python-sdk/happy-paths.md), and
[admin](/admin/happy-paths.md) sections each carry numbered happy paths — a
narrower "run these commands, expect this output" format that pairs well
with these tutorials.
