Está bueno, pero mucho más divertido que el artículo en sí me pareció algo que aparece linkeado ahí:
Starbucks doesn't use 2-phase commit
Asincrónico es mucho más rápido y paralelizable, no debería sorprender a nadie hoy por hoy. En Google nada era sincrónico, todo lo que hacen los pedidos a través de la web es encolar cosas en una base de datos para su posterior atención por algún proceso trabajador. Es así hasta en los procesos que se hacen entre servidores locales, donde no hay razón aparente para demoras ni fallas. Ir con esta arquitectura desde el vamos facilita mucho el crecimiento del sistema.
El sistema resultante es más fácil de debugear porque a los módulos no les queda otra que comportarse de forma 100% desacoplada - lo único que los une es una fila en una base de datos.
Sin embargo - y este es el efecto secundario indeseable - es mucho más difícil de testear sin las herramientas apropiadas, ya que el asincronismo introduce un no-determinismo aparente (delays impredecibles, básicamente) en el transcurso de una operación.
Saludos
