برنامه نویسی به سبک asynchronous یک مدل برنامه نویسی است که در آن برنامه نویس می تواند طوری کد بنویسد که کدها بصورت موازی اجرا شوند. این مدل معمولا با استفاده از callback ها پیاده سازی می شود. در این مدل وقتی کاری asynchronous انجام می شود شما انتظار ندارید پاسخ در همان لحظه دریافت شود و برای پاسخ یک callback تنظیم می کنیم و در همین حال برنامه نیز روال خود را ادامه می دهد.
سیستم های non-blocking این قابلیت را دارند که در زمانی که در حال سرویس دادن به چند سرویس گیرنده هستند، اجازه نمی دهند سیستم بخاطر در خواست طولانی یکی از سرویس گیرنده ها block شود. این باعث می شود. در سیستم های non-blocking برعکس سیستم های asynchronous جواب در همان لحظه داده می شود (حتی اگر جواب کامل نباشد).
در حقیقت یک سیستم asynchronous لزوما non-blocking نیست و non-blocking بودن آن بستگی به روش پیاده سازی آن دارد.