Sono andato avanti e indietro su questo problema diverse volte.
Da un lato, si potrebbe obiettare, la responsabilità unica di un repository è quella di gestire lo stato persistente di un'entità, e l'applicazione consumante è quella che sa se accetterà un valore scaduto o non in cambio di prestazioni.
Tuttavia, se si ha a che fare con una cache fuori processo e molte applicazioni / server hanno tutti bisogno dello stesso valore memorizzato nella cache, mettere il codice di memorizzazione nella cache nel repository è un posto conveniente e contribuirebbe ad evitare la duplicazione della cache. Dato che a quel punto c'è una singola cache che agisce come una singola fonte di verità e che funge da buffer per il DB, sembra più appropriato che un repository contenga il codice di memorizzazione nella cache.
Il codice di memorizzazione nella cache appartiene a un repository?
Che cosa significa specificamente una cache fuori processo (come redis) che funge da buffer per il database?
Se il codice di cache non appartiene a un repository, dove dovrebbe risiedere se molti pezzi di codice disperati hanno bisogno dello stesso valore?