Küçük Bir Eğlence Dünyası: Saga Pattern

2023-05-26

Hoş geldin, maceracı arkadaşım! Bugün seni fantastik bir yolculuğa çıkaracağım. Bilgi Krallığı’nın hikayeler, bilgiler ve bulmacalarla dolu derinliklerine doğru büyülü bir seyahat, tam da senin gibi bir kod yazarı kahramanı için! Adımlarımızı Saga Pattern’ın büyülü dünyasına doğru yönlendireceğiz. Peki, bavulunu hazırladın mı? O zaman yola koyulalım!

Saga Pattern’ın Destansı Kökenleri

Bir hikayeye başlamadan önce, tıpkı saga yazarlarının yaptığı gibi, konunun kökenlerine bir göz atalım. Saga, İskandinavya’da, özellikle İzlanda’da ortaya çıkan, genellikle tarihi olayları ve kahramanları anlatan bir hikaye türüdür. Saga Pattern da ismini bu destanlardan alır ve bilgisayar bilimlerinde bir çeşit işlem modelidir.

Mikroservislerin Büyülü Dünyası ve Saga Pattern’ın Yeri

Mikroservislerin büyülü dünyasında, her mikroservis kendi krallığını yönetir ve kendi veri tabanına sahiptir. Ancak, bazen farklı krallıkların işbirliği yapması gerekebilir. İşte tam bu noktada Saga Pattern sahneye çıkar!

Saga Pattern, genellikle mikroservis mimarisi içinde kullanılır ve birden fazla mikroservis arasında koordinasyonu sağlar. Peki ama nasıl? İşte burada işler biraz karmaşıklaşıyor…

Efsanevi Kılıç: Atomic Transaction

Normal bir monolitik uygulamada, tüm işlemler aynı veritabanında gerçekleşir. Bir işlem başarısız olursa, tüm işlemi geri alabiliriz - bu atomic transaction’ın büyülü kılıcı sayesinde olur. Ancak mikroservisler dünyasında, her servis kendi veri tabanını yönetir ve bu nedenle atomic transaction’ı kullanamayız. Yani, bu büyülü kılıç mikroservisler krallığında işe yaramaz!

Saga Pattern’ın Büyülü Gücü

Saga Pattern burada devreye girer ve bizim kahramanımız olur. Saga, işlemi küçük adımlara böler, bu adımlar farklı servisler tarafından gerçekleştirilir. Her adımın başarılı bir şekilde tamamlanması gereklidir, ancak bir adım başarısız olursa, Saga, daha önce gerçekleştirilen tüm adımları geri almayı dener - bu kompensasyon adımlarıdır.

Gelinlikten Arabaya: Saga Pattern’ın Uygulanması

Anladık, Saga Pattern büyülü bir dünya ancak gerçek hayatta ne işe yarar? Efsanevi bir düğün planlama senaryosunda bu sorunun yanıtını bulabiliriz.

Hayal et ki, en iyi arkadaşın evleniyor ve sen düğün planlamasına yardımcı oluyorsun. Liste bir sürü görev içeriyor: bir düğün salonu kiralamak, gelinliği seçmek, düğün pastasını sipariş etmek ve limuzini ayarlamak. Ancak, bütçe sınırlı ve her şeyi kontrol altında tutmak istiyorsun.

İşte burada Saga Pattern devreye girer. Her bir görev bir mikroservis olabilir ve her biri kendi veri tabanını yönetir. Eğer her şey yolunda giderse, harika! Ancak, diyelim ki limuzini çok pahalı çıktı ve bütçeyi aştı. Saga Pattern, daha önce gerçekleştirilen tüm işlemleri (düğün salonu kiralamak, gelinliği seçmek ve düğün pastasını sipariş etmek) geri alabilir ve yeni bir plan yapman için zaman kazandırabilir.

Saga Pattern’ın Kötü Büyücüleri: Zorluklar ve Çözümler

Ancak unutmayın ki, Saga Pattern dünyasında her şey güllük gülistanlık değil. Bu dünyanın da kendine özgü zorlukları bulunmaktadır. İşlemlerin durumunu takip etmek, başarısız işlemlerin nasıl geri alınacağını belirlemek gibi zorluklar söz konusu olabilir.

Bu durumda, çözüm yolu olarak iki farklı strateji kullanılabilir: Choreography ve Orchestration.

Choreography’de, her mikroservis ne yapacağını ve başarısızlık durumunda ne yapılması gerektiğini bilir. Diğer taraftan, Orchestration stratejisinde, bir orkestra şefi gibi, bir yönetici servis vardır ve tüm işlemleri yönetir.

Saga Pattern’ın Hikayesi Son Buluyor…

Ve işte böylece Saga Pattern’ın eğlenceli ve eğitici hikayesi son buluyor. Umarım bu hikayeyi keyifli bulmuşsundur ve umarım bu bilgiler sana yeni maceralarında yardımcı olur.

Son olarak hatırlatmalıyım ki, Saga Pattern, birçok durumda çözüm olabilir ancak her durum için ideal olmayabilir. Her zaman en uygun çözümü bulmak için ihtiyaçları ve mevcut durumu dikkatlice değerlendirmek önemlidir.

Şimdi, yeni bir hikaye yaratmak için maceralarına devam etme zamanı. Mutlu kodlamalar!



More posts like this

The Story of the Orchestra Conductor: Orchestration-Based Saga with Microservice

2023-06-11 | #microservice #orchestration-based-saga #saga-pattern

In another corner of the Land of Computers, in the City of Microservices, there was another world where all microservices moved according to a specific symphony. In this world, all microservices were governed by a single orchestra conductor, and this management model was called “Orchestration-Based Saga.” This resembled a music performance in a grand orchestra. Just as an orchestra conductor tells all musicians when and which notes to play, in this world, the Orchestra Conductor Microservice determined when and how all microservices would move.

Continue reading 


The Story of the Orchestra Conductor: A Saga of Orchestration with Microservices

2023-06-11 | #choreography-based-saga #microservice #saga-pattern

In another corner of the Land of Computers, in the City of Microservices, there was another world where all microservices moved according to a specific symphony. In this world, all microservices were managed by a single orchestra conductor, and this management model was called “Orchestration-Based Saga.” It was akin to a music performance in a grand orchestra. Just as an orchestra conductor tells all musicians when to play which notes, here the Orchestra Conductor Microservice determined when and how all microservices would move.

Continue reading 


CAP ve PACELC Teoremleri: Mikroservis Mimarilerinde Kullanımı ve Örnekler

2023-05-05 | #cap-teoremi #mikroservis #pacelc-teoremi

Mikroservis mimarileri, modern uygulamaların ölçeklenebilirlik, esneklik ve performans gereksinimlerini karşılamak için giderek daha yaygın hale geliyor. CAP ve PACELC teoremleri, mikroservis mimarilerinin temel prensiplerini anlamak ve uygulamak için önemli kavramlardır. Bu makalede, CAP ve PACELC teoremlerinin mikroservis mimarilerinde nasıl kullanıldığına dair örnekler ve şekiller sunacağız. CAP Teoremi ve Mikroservisler CAP teoremi, dağıtık sistemlerde Tutarlılık (Consistency), Erişilebilirlik (Availability) ve Bölüm Toleransı (Partition Tolerance) özellikleri arasındaki dengeyi ele alır. Mikroservis mimarilerinde, bu özellikler aşağıdaki şekillerde kullanılır:

Continue reading 