Farklı alanlarda faaliyet gösteren organizasyonlar, modern ihtiyaçları karşılayabilmek amacıyla giderek daha sağlam, dayanıklı ve esnek sistemler geliştirmektedirler. Bu tarz yazılım sistemleri geliştirmek için birbirlerinden bağımsız olarak tasarım örüntüleri ve yazılım mimarileri ortaya çıkmaktadır.
Son yıllarda ihtiyaçların önemli ölçüde değişmesi ile yeni yazılım mimarileri ve tasarım örüntüleri ortaya çıkmıştır. Sadece birkaç yıl önce büyük bir uygulama demek, onlarca sunucu, saniyelerle ölçülen geribildirim süreleri, saatlerce süren bakım çalışmaları ve gigabyte'larca veri demekti. Fakat bugünün modern uygulamaları mobil cihazlardan, milyonlarca işlemcili sunucu kümelerine kadar değişik şekillerde karşımıza çıkmaktadırlar. Veriler ise artık petabyte'lar ile ölçülmektedir. Özetle, bugünün ihtiyaçları dünün yazılım mimarileriyle karşılanamamaktadır.
Bizler sistemlerin duyarlı, dayanıklı, elastik ve mesaj güdümlü yönlerinin gerekliliğini kabullenmekte ve sistem