É comum processadores executarem bilhões de instruções por segundos e tenham bilões de bytes de RAM. Quanto maior isso menos precisamos de um estado mutável.
Imagine uma aplicação bancária que indique os saldos em conta dos clientes. Os programas alteram estes saldos quando transações de depositos ou saques são executados.
Agora imagine que ao invés dos saldos, apenas as transações são armazenadas. Quando alguém quiser consultar os saldos , basta somar as transações dessa conta. Esse esquema não requer variáveis mutáveis.
Essa é a ídea por trás do event sourcing
. É uma estratégia em que armazenamos as transações, mas não o estado. Quando o estado for solicitado, simplesmente aplicamos todas as transações do inicio.