Varför behövs "använd steg"? Någon påpekade att steg i ett arbetsflöde är som "spawn checkpoints" i ett videospel. Bra analogi. En intressant konsekvens av att markera en funktion som "use workflow" är att du inte får göra I/O annat än i steg. Arbetsflöden måste vara fria från biverkningar och deterministiska. Varje gång du väntar måste den funktionen vara ett steg. Dessa funktionsanrop kan ses som serialiserbara fortsättningar. Indata och utdata för dessa funktioner checkas in i en logg. Tänk JSON. Om du har ett arbetsflöde med 3 steg och det sista misslyckas måste vi kunna "köra om" hela funktionen och ha ett perfekt grepp om tillståndet i världen. På så sätt är "use step" faktiskt väldigt likt "use cache" eller "getStaticProps" – funktioner som kan externaliseras och isoleras i tid och rum, som körs i olika "datorer".