Skip to content

Demo runbook ​

In one sentence

Run each anti-pattern once in the order below, with the services already up, and keep the captured numbers ready as a fallback for every live step.

This runbook is for presenting or rehearsing the talk. The commands are repeated with expected output in Running the demos. If a live step misbehaves, see Troubleshooting.

Before you start ​

Rehearsal checklist

Run of show: 20 minutes ​

The DEMO_GUIDE gives a 20-minute run of show. The talk itself is 30 minutes, with the rest of the time spent on framing, the checklist, and Q&A.

MinutesSegmentAction
0 to 2BaselineShow the baseline endpoints, and /docs
2 to 6AP1Three concurrent bad and good calls. Run the health-check trick. Show the asyncio debug output.
6 to 9AP2Run bench_ap2_di.py. Say Postgres is about 10×.
9 to 13AP3Show the 500 from bad-crash, then the query-count script
13 to 16AP4curl both endpoints, then the cProfile call counts
16 to 19AP5Restart in bad, run locust, restart in good, run locust. Show the timeout traceback.
19 to 20WrapThe performance checklist

Talk timing: 30 minutes ​

The presenter guide paces the 30-minute slot in segments. The live demos sit inside these windows.

TimeSegmentLive demo
0:00 to 2:00Opening hookNone
2:00 to 5:00Framing: what async buys youNone
5:00 to 9:00AP1Bad and good, side by side
9:00 to 13:00AP2Optional: bench_ap2_di.py (about 2 s)
13:00 to 17:00AP3bad-crash first, then bad-n1 and good
17:00 to 21:00AP4Not live. Show the captured cProfile.
21:00 to 25:00AP5Captured slide by default. Live variant only if ahead on time.
25:00 to 27:00Checklist and toolkitNone
27:00 to 28:00Repo call to actionNone
28:00 to 30:00Q&ANone. See the FAQ.

Cut order when running over time

Cut AP4's live curl first, since it is optional. If time is still tight, compress AP2 to "here are the numbers" without narrating the benchmark script.

The five demos at a glance ​

PatternLive stepFallback if the live step fails
AP1Three concurrent bad calls, then goodCaptured 3.046 s and 1.040 s
AP2bench_ap2_di.pyCaptured 17.48 ms and 1.73 ms table
AP3bad-crash 500 responsemissing-greenlet-response.json, the safest demo
AP4Optional curl pairCaptured cProfile counts
AP5Restart and locust, optionalCaptured locust tables and the traceback

Released under the MIT License. Speaker: Satyam Soni, PyCon Hong Kong 2026.