Mengapa "langkah penggunaan" diperlukan? Seseorang menunjukkan langkah-langkah dalam alur kerja seperti "pos pemeriksaan pemijahan" dalam video game. Analogi yang bagus. Konsekuensi menarik dari menandai fungsi "gunakan alur kerja" adalah Anda tidak diizinkan melakukan I/O selain langkah-langkah. Alur kerja harus bebas efek samping dan deterministik. Setiap kali Anda menunggu fungsi itu harus menjadi langkah. Panggilan fungsi ini dapat dianggap sebagai kelanjutan yang dapat diserialisasikan. Input dan output dari fungsi-fungsi ini dimasukkan ke log. Pikirkan JSON. Jika Anda memiliki alur kerja dengan 3 langkah dan yang terakhir gagal, kita harus dapat "menjalankan ulang" seluruh fungsi dan memiliki pegangan yang sempurna tentang keadaan dunia. Dengan cara ini, "gunakan langkah" sebenarnya sangat mirip dengan "gunakan cache" atau "getStaticProps" — fungsi yang dapat dieksternalisasi dan diisolasi dalam ruang dan waktu, berjalan di "komputer" yang berbeda.