Bene, per cominciare, prendiamo da parte le discussioni sul fatto che sia una buona o una cattiva pratica salvare diversi stati su un singolo record, perché sarebbe fuori tema.
Detto questo, considera questo esempio:
Un utente accede a un sito di e-commerce e acquista 1 oggetto. Una lattina di birra, per esempio.
Questa lattina di birra deve essere pagata, imballata e consegnata. Ci sono 3 diversi flussi di lavoro coinvolti.
Ovviamente si potrebbe dire che si consideri una macchina a stati, con l'ordine contenente 4 stati:
Pagamento in attesa - > Pagato (in attesa di imballaggio) - > Compresso (in attesa di consegna) - > Consegnato
Ma ogni stato ha un flusso di lavoro interno. In attesa di pagamento può comportare effettivamente l'invio della richiesta di pagamento a una società di carte di credito, in attesa di ritorno, i pagamenti respinti dalla società CC, i metodi di modifica, ecc ...
In attesa di imballaggio significa che potrebbe essere necessario richiedere il trasferimento di tale articolo da un luogo di stoccaggio a un altro, approvazioni da personale diverso e fino a quando qualcuno (o qualcosa) mette una scatola intorno alla lattina di birra, stampa un'etichetta con il cliente nome e indirizzo e rende effettivamente la scatola disponibile per i ragazzi della logistica consegnare il pacchetto.
Confezionato significa che qualcuno deve effettivamente firmare che il pacco è stato prelevato nel luogo di stoccaggio, posto su un camion o un aereo, ottenere un numero di tracciamento, ecc ...
Ottieni l'idea?
Tutto può essere tracciato all'interno di un singolo record, specialmente uno con centinaia di campi. Non significa che dovrebbe essere in questo modo, ma la tua realtà aziendale dirà quale sarebbe la soluzione ottimale.
Quindi, avvolgimento:
"Does that mean my 1 order record contains many state machines?"
Nell'esempio sopra, sì. Uno stato per ogni flusso di lavoro.
"If so, then what, and does it lose it's power?"
Non capisco cosa intendi per "perdere il suo potere", ma certamente memorizzare diversi flussi di lavoro sotto un singolo record può rendere la tua vita più difficile come sviluppatore, a causa del mescolamento di domini diversi senza una corretta definizione dei confini.