Nel linguaggio quotidiano si dice “chiamiamo un servizio” e sembra tutto uguale. In realtà, sincrono e asincrono sono due modi diversi di progettare responsabilità.
Nel sincrono chiedi una risposta subito. Nel frattempo blocchi risorse, vincoli tempi, amplifichi l’effetto domino degli errori. È comodo, ma costoso.
Nell’asincrono accetti che il tempo sia parte del sistema. Introduci code, retry, idempotenza, correlazione. È più robusto, ma richiede disciplina.
Non sono intercambiabili perché risolvono problemi diversi. La scelta giusta dipende da tre domande semplici:
- cosa succede se la risposta tarda 2 minuti?
- cosa succede se arriva due volte?
- chi si prende la responsabilità dell’esito: il chiamante o il sistema?
Se non sai rispondere, stai scegliendo “sincrono” per abitudine. Ed è così che nascono integrazioni fragili.