Mikroservisler arası asenkron haberleşmede veri tutarlılığının sağlanması için dinamik bir çözüm: MicroAsync
A dynamic solution to the data consistency problem in asynchronous communication between microservices:  MicroAsync
Yazar: MUHAMMED FATİH AKSU
Danışman: DR. ÖĞR. ÜYESİ YUNUS EMRE SELÇUK
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Yazılım mimarilerinden olan Monolitik mimari, tüm bileşenlerin tek bir bütün olarak çalıştığı bir yapıdır. Mikroservis mimarisi ise monolitik mimariye göre çok daha esnek, çevik ve çağımızın gereksinimlerine uygun yazılımlar üretmeyi sağlamaktadır. Bu yapı, geliştirme ve bakım süreçlerinde zorluklar yaratabilir; küçük bir değişiklik tüm sistemi etkileyebilir ve bağımsız ölçeklendirme zor olabilir. Mikroservisler, her biri bağımsız olarak geliştirilebilen, dağıtılabilen ve yönetilebilen küçük hizmetlerdir. En büyük avantajları arasında CI/CD süreçleri ile uyum, kısa sürede devreye alım, hızlı çalışan servisler, hataların yayılmaması ve teknoloji çeşitliliği yer alır. Bu nedenle, mikroservis mimarisi son yıllarda popülerlik kazanmıştır Mikroservis mimarisi oldukça avantajlı ve yenilikçi olsa da bazı dezavantajları da bulunmaktadır. Mikroservis mimarisinde en büyük sorunlarından biri iletişim sırasında oluşabilecek veri tutarlılık problemidir. Bu sorunla ilgili çeşitli çözümler olsa da ihtiyaçlara göre çözümler farklılaşmalıdır. Bu çalışmada, Saga Pattern yönteminin Orchestration Based Saga prensipleri kullanılarak mikroservisler arası asenkron haberleşmede veri tutarlılığını sağlamak için geliştirilen ve dinamik bir yapı olan MicroAsync çözümü tanıtılmaktadır.

Abstract:
Monolithic architecture, one of the software architectures, is a structure in which all components work as a single whole. Microservice architecture, on the other hand, is much more flexible and agile than monolithic architecture and enables us to produce software that meets the requirements of our age. This structure can create difficulties in development and maintenance processes; a small change can affect the entire system and independent scaling is difficult. Microservices are small services, each of which can be developed, deployed and managed independently. Their major advantages include compatibility with CI/CD processes, rapid deployment, fast running services, no propagation of errors and technology diversity. For this reason, microservices architecture has gained popularity in recent years. While microservices architecture is highly advantageous and innovative, it also has some disadvantages.   One of the biggest problems with microservice architecture is the data consistency problem that can occur during communication. Although there are various solutions to this problem, solutions should be differentiated according to the needs. In this study, we introduce MicroAsync, a dynamic solution developed to ensure data consistency in asynchronous communication between microservices using Orchestration Based Saga principles of the Saga Pattern method.