Per poter scalare vorrei usare la programmazione asincrona. Funziona molto bene se devo leggere qualcosa da db e spingere al frontend, tuttavia non so come usarlo correttamente in blob di logica buniess che vivono le loro vite. Ho un oggetto, che ha molte proprietà che dovrebbero essere pigri. Ad esempio, classe di ordine con destinatario, pagatore, indirizzo di consegna, ecc. Raggruppa servizi che leggono qualcosa in base a orderId.
In passato avrei fatto:
Payer payer = order.Payer;
- controllerebbe la cache delle richieste e la base di query secondo necessità. Comunque ora ho Payer payer = await order.Payer()
e lo odio. Costringe tutto il mio codice logico ad essere asincrono (perché nel software di contabilità Payer deve essere ovunque).
Come risolvere questo problema?