Was ist der Unterschied zwischen: Asynchronen, nicht blockierenden Event-Base-Architekturen?

Was ist der Unterschied zwischen: Asynchron , Nicht blockierend und Event-basierte Architekturen? Kann etwas sowohl asynchron als auch nicht blockierend (und ereignisbasiert ) sein? Was ist beim Programmieren am wichtigsten, um etwas zu haben: asynchron, nicht blockierend und / oder...