ในบริบทของสถาปัตยกรรมไมโครเซอร์วิส คำว่า "Microservices Saga" หมายถึงรูปแบบธุรกรรมแบบกระจายที่ช่วยให้สามารถรักษาความสอดคล้องของข้อมูลในบริการต่างๆ ที่เชื่อมโยงอย่างหลวมๆ ภายในระบบได้ เป้าหมายหลักของรูปแบบ Saga คือการจัดการกับความท้าทายที่เกิดขึ้นจากการจัดการธุรกรรมในระบบที่ใช้ไมโครเซอร์วิส ซึ่งไมโครเซอร์วิสแต่ละรายมีหน้าที่รับผิดชอบข้อมูลของตนเองและมีฐานข้อมูลของตนเอง คำว่า "Saga" มีต้นกำเนิดมาจากขอบเขตของระบบการจัดการฐานข้อมูล ซึ่ง Hector Garcia-Molina และ Kenneth Salem เปิดตัวครั้งแรกในปี 1987 เพื่อหมายถึงลำดับของการดำเนินการที่ดำเนินการภายในธุรกรรมที่มีอายุการใช้งานยาวนาน
สถาปัตยกรรมไมโครเซอร์วิสได้รับความนิยมเพิ่มขึ้นเนื่องจากความสามารถในการเพิ่มความยืดหยุ่น ความสามารถในการปรับขนาด และความยืดหยุ่นในการพัฒนาซอฟต์แวร์ อย่างไรก็ตาม เช่นเดียวกับแนวทางสถาปัตยกรรมซอฟต์แวร์อื่นๆ ก็ยังมีข้อเสียอยู่บ้าง ความท้าทายที่โดดเด่นอย่างหนึ่งในสถาปัตยกรรมไมโครเซอร์วิสคือการรักษาความสอดคล้องของข้อมูลในบริการต่างๆ โดยเฉพาะอย่างยิ่งเมื่อการดำเนินธุรกิจเดียวครอบคลุมไมโครเซอร์วิสหลายรายการ ปัญหานี้ทวีความรุนแรงมากขึ้นด้วยความจริงที่ว่าแต่ละไมโครเซอร์วิสมักจะเป็นเจ้าของพื้นที่จัดเก็บข้อมูลของตน ส่งผลให้มีขอบเขตการทำธุรกรรมที่แยกจากกันสำหรับแต่ละบริการ
เพื่อจัดการกับความท้าทายนี้ รูปแบบ Microservices Saga เสนอโซลูชันที่รวมชุดธุรกรรมในท้องถิ่น โดยแต่ละธุรกรรมเป็นของไมโครเซอร์วิสเดียว ธุรกรรมเหล่านี้ได้รับการประสานงานผ่านข้อความหรือเหตุการณ์ในลักษณะอะซิงโครนัส โดยแทนที่ธุรกรรมแบบกระจายแบบเดิมที่ต้องอาศัยโปรโตคอลการส่งข้อมูลแบบสองเฟส ในรูปแบบ Saga แต่ละธุรกรรมในท้องถิ่นจะตามด้วยเหตุการณ์ที่ทำให้เกิดธุรกรรมท้องถิ่นถัดไปตามลำดับ หรือทริกเกอร์ธุรกรรมการชดเชยในกรณีที่เกิดความล้มเหลว ธุรกรรมการชดเชยโดยพื้นฐานแล้วเป็นการ "เลิกทำ" การดำเนินการที่มีจุดมุ่งหมายเพื่อคืนค่าการเปลี่ยนแปลงที่ทำโดยธุรกรรมในท้องถิ่นครั้งก่อน เพื่อรักษาความสอดคล้องของข้อมูลในบริการต่างๆ เมื่อเกิดปัญหา
Microservices Saga สามารถนำไปใช้ได้โดยใช้สองรูปแบบหลัก: การออกแบบท่าเต้นและการจัดเรียบเรียง ในการออกแบบท่าเต้น ไมโครเซอร์วิสแต่ละรายการมีหน้าที่ทำความเข้าใจว่าเหตุการณ์ใดที่ต้องตอบสนองต่อ และการกระทำใดที่จำเป็นต้องดำเนินการเพื่อตอบสนอง เมื่อธุรกรรมในพื้นที่เสร็จสมบูรณ์ ไมโครเซอร์วิสจะปล่อยเหตุการณ์ และไมโครเซอร์วิสอื่นๆ จะรับฟังเหตุการณ์นี้และดำเนินการตามนั้น ข้อได้เปรียบหลักของแนวทางนี้คือ ส่งเสริมการควบคุมแบบกระจายอำนาจ และต้องการการประสานงานจากส่วนกลางเพียงเล็กน้อยหรือไม่มีเลย
ในรูปแบบการจัดประสาน องค์ประกอบส่วนกลางที่เรียกว่า orchestrator มีหน้าที่รับผิดชอบในการประสานงานการดำเนินการธุรกรรมในท้องถิ่นในเทพนิยายไมโครเซอร์วิส ผู้จัดทำจะได้รับเหตุการณ์จากแต่ละบริการและส่งคำสั่งไปยังบริการต่างๆ เพื่อดำเนินการธุรกรรมในพื้นที่ของตน วิธีการแบบรวมศูนย์นี้ช่วยให้สามารถจัดการข้อยกเว้นได้อย่างมีประสิทธิภาพ และเพิ่มการมองเห็นในกระบวนการซากาโดยรวม อย่างไรก็ตาม อาจทำให้เกิดปัญหาคอขวดและอาจต้องใช้โครงสร้างพื้นฐานและการบำรุงรักษาเพิ่มเติม
ที่ AppMaster ซึ่งเป็นแพลตฟอร์ม no-code อันทรงพลัง การใช้รูปแบบ Microservices Saga ได้ง่ายขึ้นผ่าน Visual Business Processes (BP) Designer ซึ่งช่วยให้สามารถสร้างแบ็กเอนด์ มือถือ และแอปพลิเคชันเว็บด้วยองค์ประกอบแบบโต้ตอบได้เต็มรูปแบบ แพลตฟอร์มนี้สร้างซอร์สโค้ด การทดสอบ สคริปต์การย้าย และอื่นๆ สำหรับแต่ละโปรเจ็กต์ ซึ่งเข้ากันได้อย่างลงตัวกับสถาปัตยกรรมไมโครเซอร์วิส ช่วยให้มั่นใจได้ถึงความสอดคล้องของข้อมูลและการดำเนินการธุรกรรมแบบกระจายที่มีประสิทธิภาพ นอกจากนี้ แนวทางของ AppMaster ยังขจัดหนี้ด้านเทคนิคด้วยการสร้างแอปพลิเคชันใหม่พร้อมกับการปรับเปลี่ยนทุกครั้ง ช่วยให้นักพัฒนาแม้แต่คนเดียวสามารถสร้างโซลูชันซอฟต์แวร์ที่ครอบคลุมได้อย่างมีประสิทธิภาพและประสิทธิผล
ตัวอย่างเช่น พิจารณาแพลตฟอร์มอีคอมเมิร์ซที่มีบริการแยกกันสำหรับสินค้าคงคลัง การชำระเงิน และการจัดส่ง เมื่อมีการส่งคำสั่งซื้อ Microservices Saga จะเริ่มต้นขึ้น ซึ่งเกี่ยวข้องกับการสำรองสต็อกจากบริการสินค้าคงคลัง การเรียกเก็บเงินจากลูกค้าผ่านบริการการชำระเงิน และการสร้างการจัดส่งผ่านบริการจัดส่ง หากขั้นตอนใดขั้นตอนหนึ่งเหล่านี้ล้มเหลว ธุรกรรมการชดเชยจะดำเนินการเพื่อยกเลิกการดำเนินการที่ประสบความสำเร็จก่อนหน้านี้ เพื่อให้มั่นใจว่าข้อมูลมีความสอดคล้องกันทั่วทั้งระบบ ด้วยการใช้รูปแบบ Microservices Saga แพลตฟอร์มอีคอมเมิร์ซนี้สามารถจัดการธุรกรรมที่เชื่อถือได้ภายในสถาปัตยกรรมไมโครเซอร์วิส ซึ่งท้ายที่สุดจะส่งเสริมความยืดหยุ่นและการดำเนินงานที่คล่องตัว
โดยสรุป Microservices Saga คือรูปแบบธุรกรรมแบบกระจายที่จัดการกับความท้าทายในการรักษาความสอดคล้องของข้อมูลในระบบที่ใช้ไมโครเซอร์วิส ช่วยให้สามารถประสานงานชุดของธุรกรรมท้องถิ่นในบริการต่างๆ ผ่านการส่งข้อความหรือเหตุการณ์แบบอะซิงโครนัส แทนที่ธุรกรรมแบบกระจายแบบเดิม และรับประกันสถาปัตยกรรมซอฟต์แวร์ที่ยืดหยุ่น ปรับขนาดได้ และยืดหยุ่นมากขึ้น การใช้รูปแบบ Microservices Saga กับแพลตฟอร์ม no-code ของ AppMaster ช่วยให้การพัฒนาแอปพลิเคชันรวดเร็วและคุ้มต้นทุนโดยไม่ต้องมีภาระทางเทคนิค ช่วยให้นักพัฒนาสามารถสร้างโซลูชันซอฟต์แวร์ที่ครอบคลุมซึ่งยึดตามหลักปฏิบัติด้านสถาปัตยกรรมซอฟต์แวร์สมัยใหม่