A detailed account of building Ignition, a Temporal-powered firmware flashing system used to flash 2,300 ESP32-based conference badges in two days at the Replay 2026 conference. The system used a parent-child Workflow model where each physical badge carrier mapped to one parent FlashBadgesWorkflow with 32 per-badge child workflows. Key engineering challenges included handling USB re-enumeration when QA firmware caused devices to reappear under different port names, separating flash success from actual boot validation, and running six fully isolated local Temporal servers on laptops to avoid a shared failure domain. The architecture wrapped esptool with durable state, retry policies, heartbeated activities, and boot verification to turn a fragile manual process into a reliable production line operable by non-experts.

13m read timeFrom temporal.io
Post cover image
Table of contents
The problem arrived by DHL #A carrier became a Workflow boundary #One physical badge, one durable state machine #Writing the image was only half the job #Six small factories instead of one important server #Temporal managed the badges. Mike managed us. #The control plane around the command #
152 Impressions