Qual é a diferença real entre redux e uma máquina de estado (por exemplo, xstate)?

Estou trabalhando na investigação de um aplicativo front-end de complexidade média. No momento, ele está escrito em javascript puro, e possui várias mensagens diferentes baseadas em eventos conectando algumas partes principais deste aplicativo. Decidimos que precisamos implementar algum tipo de...