In base al principio di separazione della query di comando , nonché Thinking in Data e DDD con Clojure presentazioni si dovrebbero separare gli effetti collaterali (modificando il mondo) da calcoli e decisioni, in modo che sia più facile comprendere e testare entrambe le parti.
Questo lascia una domanda senza risposta: dove relativamente al confine dovremmo mettere "chiedendo al mondo"? Da un lato, la richiesta di dati da sistemi esterni (come database, API di servizi estenziali, ecc.) Non è referentially transparent e quindi non dovrebbe stare insieme al puro codice computazionale e decisionale. D'altra parte, è problematico, o forse impossibile, separarli dalla parte computazionale e passarla come argomento perché non possiamo sapere in anticipo quali dati potremmo aver bisogno di richiedere.