В чем разница между: асинхронной, неблокирующей и событийной архитектурой?

Какая разница между: Асинхронный , Неблокирующий и Архитектуры на базе событий ? Может ли что-то быть как асинхронным, так и неблокирующим (и основанным на событиях )? Что важнее всего в программировании, чтобы что-то было: асинхронное, неблокирующее и / или событийная (или все 3)? Если бы вы...