Asenkron (Asynchronous), aynı anda gerçekleşmeyen, yani eş zamansız olayları ifade eder. Yazılım dünyasında ise asenkron kavramı, ana programdan bağımsız olayların meydana gelmesi durumunu ifade eder. Bir de asenkron programlama söz konusudur. Asenkron programlama, uzun bir işin bitmesini beklemeden bu işin sonucuna bağımlı olmayan diğer işlere devam edebilmeyi, bağımlı işleri ise beklemedeki işe devam etmek üzere ekleyebilmeyi sağlar.
Asenkron çalışan bir sistemde, işlemler küresel bir saat sinyali tarafından koordine edilmez. Bunun yerine olay (event) ya da sistemdeki değişiklikler tarafından koordine edilir. Asenkron sistemlerin düzgün bir şekilde çalışması, harici sinyallere veya mesajlara bağlı değildir. Bu durumlar eşzamansız çalışan bir sistemi etkileyemez.
Eş zamansız çalışan sistemler genellikle modüler bir yapıya sahip olarak tasarlanırlar. Bu tür sistemlerde her modül bağımsız olarak çalışabilir ve diğer modüller ile iletişime geçebilir. Bu birbirlerine bağlı modüller daha sonra birlikte kendi içlerinde bir çalışma sistemi oluştururlar.
Verilerin sabit bir akış yerine düzensiz olarak iletilebilmesine asenkron iletişim denir. Yaygın örnekler arasında, katılımcıların farklı zamanlarda mesaj gönderdiği e-posta servisleri veya çevrimiçi forumlar vardır. Yani bu sistemlerde sürekli bağlantı durumunda olmanız gerekmez.
Blok zincirde Asenkron
Blok zincirler, asenkron veya yarı-asenkron bir ağa sahip olabilir.
Asenkron ağlar, düğümlere gönderilen bilginin durumu hakkında herhangi bir geri bildirim sağlamaz. Bu da ağdaki düğümleri ağın genel durumu hakkında farklı görüşlere sahip olmasına yol açabilir. Asenkronluk, düğümlerin mesaj alabilmesi için diğer düğümleri bekleme gerekliliğini ortadan kaldırarak verimliliği de artırabilir.
Yarı asenkron ağlar ise ağın mevcut durumunda bir bölünme olmaması için tasarlanmıştır. Eğer ağ bölünmüşse, düğümler arasındaki fikir birliği algoritması tekrar geri yüklenene kadar ağ kendi kendisini yavaşlatacaktır.
Asenkron veya yarı asenkron blok zincir ağları, tutarlılığa veya kullanılabilirliğe öncelik verilecek şekilde tasarlanabilir. Eğer blockchain ağı üzerinde, kullanılabilirliğe öncelik verilmek istenirse, tüm işlemler herhangi bir kesinti olmadan gerçekleşecektir. Eğer blockchain ağı üzerinde tutarlılığa öncelik verilmek isteniyorsa, önceki tüm işlemler onaylanana kadar bazı işlemler durdurulabilir veya işlem sırasında bekletilebilir.