Jaka jest różnica między architekturami: asynchronicznymi, nieblokującymi, bazowymi na zdarzeniach?

Jaka jest różnica pomiędzy: Asynchroniczne , Non-Blocking i Architektury bazujące na wydarzeniach ? Czy coś może być zarówno asynchroniczne, jak i nieblokujące (i oparte na zdarzeniach )? Co jest najważniejsze w programowaniu, aby mieć coś: asynchroniczne, nieblokujące i / lub oparte na...