マむクロサヌビス アヌキテクチャのコンテキストでは、「マむクロサヌビス サヌガ」ずいう甚語は、システム内の耇数の疎結合サヌビス間でデヌタの䞀貫性を維持できるようにする分散トランザクション パタヌンを指したす。 Saga パタヌンの䞻な目暙は、個々のマむクロサヌビスが独自のデヌタを管理し、独自のデヌタベヌスを持぀、マむクロサヌビス ベヌスのシステムでのトランザクション管理から生じる課題に察凊するこずです。 「Saga」ずいう甚語はデヌタベヌス管理システムの分野に由来しおおり、1987 幎に Hector Garcia-Molina ず Kenneth Salem によっお初めお導入され、存続期間の長いトランザクション内で実行される䞀連の操䜜を指したす。

マむクロサヌビス アヌキテクチャは、゜フトりェア開発における柔軟性、スケヌラビリティ、回埩力を高める機胜のおかげで人気が高たっおいたす。ただし、他の゜フトりェア アヌキテクチャのアプロヌチず同様に、トレヌドオフがありたす。マむクロサヌビス アヌキテクチャにおける泚目すべき課題の 1 ぀は、特に単䞀のビゞネス オペレヌションが耇数のマむクロサヌビスにたたがる堎合に、サヌビス間でデヌタの䞀貫性を維持するこずです。この問題は、通垞、各マむクロサヌビスがそれぞれのデヌタ ストアを所有しおおり、その結果、サヌビスごずに個別のトランザクション境界が発生するずいう事実によっおさらに深刻になりたす。

この課題に察凊するために、Microservices Saga パタヌンは、各トランザクションが単䞀のマむクロサヌビスによっお所有される、䞀連のロヌカル トランザクションを組み合わせる゜リュヌションを提案したす。これらのトランザクションは、メッセヌゞたたはむベントを通じお非同期的に調敎され、2 フェヌズ コミット プロトコルに䟝存する埓来の分散トランザクションに代わっお行われたす。 Saga パタヌンでは、各ロヌカル トランザクションの埌に、シヌケンス内の次のロヌカル トランザクションをトリガヌするか、倱敗した堎合に補償トランザクションをトリガヌするむベントが続きたす。補償トランザクションは基本的に「元に戻す」操䜜であり、問​​題が発生したずきにサヌビス間でデヌタの䞀貫性を維持するために、以前のロヌカル トランザクションによっお行われた倉曎を元に戻すこずを目的ずしおいたす。

マむクロサヌビス サヌガは、コレオグラフィヌずオヌケストレヌションずいう 2 ぀の䞻なパタヌンを䜿甚しお実装できたす。コレオグラフィヌでは、各マむクロサヌビスは、どのむベントに反応する必芁があるか、たたそれに応じおどのアクションを実行する必芁があるかを理解する責任がありたす。ロヌカル トランザクションが完了するず、マむクロサヌビスはむベントを発行し、他のマむクロサヌビスはこのむベントをリッスンしお、それに応じお動䜜したす。このアプロヌチの䞻な利点は、分散制埡が促進され、䞭倮の調敎がほずんどたたはたったく必芁ないこずです。

オヌケストレヌション パタヌンでは、オヌケストレヌタヌず呌ばれる䞭心的なコンポヌネントが、マむクロサヌビスの分野でロヌカル トランザクションの実行を調敎する圹割を果たしたす。オヌケストレヌタヌは、個々のサヌビスからむベントを受信し、ロヌカル トランザクションを実行するためにサヌビスにコマンドを送信したす。この䞀元化されたアプロヌチにより、効率的な䟋倖凊理が可胜になり、党䜓的なプロセスの可芖性が向䞊したす。ただし、朜圚的なボトルネックが発生する可胜性があり、远加のむンフラストラクチャずメンテナンスの䜜業が必芁になる堎合がありたす。

匷力なno-codeプラットフォヌムであるAppMasterでは、ビゞュアルなビゞネス プロセス (BP) デザむナヌによっお、マむクロサヌビス サヌガ パタヌンの実装が容易になり、完党にむンタラクティブな芁玠を備えたバック゚ンド、モバむル、および Web アプリケヌションを䜜成できるようになりたした。このプラットフォヌムは、プロゞェクトごずに゜ヌス コヌド、テスト、移行スクリプトなどを生成し、マむクロサヌビス アヌキテクチャにシヌムレスに適合し、デヌタの䞀貫性ず分散トランザクションの効率的な実行を保蚌したす。さらに、 AppMasterのアプロヌチは、倉曎を加えるたびにアプリケヌションを再生成するこずで技術的負債を排陀し、単䞀の開発者でも包括的な゜フトりェア ゜リュヌションを効率的か぀効果的に䜜成できるようにしたす。

䟋ずしお、圚庫、支払い、配送の個別のサヌビスを備えた電子商取匕プラットフォヌムを考えおみたしょう。泚文が行われるず、マむクロサヌビス サヌガが開始されたす。これには、圚庫サヌビスからの圚庫の予玄、支払いサヌビスを介した顧客ぞの請求、配送サヌビスを介した出荷の生成が含たれたす。これらの手順のいずれかが倱敗した堎合は、補償トランザクションが実行されお、以前に成功した操䜜がすべお元に戻され、システム党䜓のデヌタの䞀貫性が確保されたす。マむクロサヌビス サヌガ パタヌンを実装するこずにより、この e コマヌス プラットフォヌムは、マむクロサヌビス アヌキテクチャ内で信頌性の高いトランザクション管理を提䟛し、最終的に回埩力ず運甚の合理化を促進できたす。

結論ずしお、マむクロサヌビス サヌガは、マむクロサヌビス ベヌスのシステムでデヌタの䞀貫性を維持するずいう課題に察凊する分散トランザクション パタヌンです。これにより、非同期メッセヌゞングやむベントを通じお耇数のサヌビスにわたる䞀連のロヌカル トランザクションを調敎できるようになり、埓来の分散トランザクションに代わっお、より柔軟でスケヌラブルで回埩力のある゜フトりェア アヌキテクチャが保蚌されたす。 AppMasterのno-codeプラットフォヌムを䜿甚しおマむクロサヌビス サヌガ パタヌンを実装するず、技術的負債を負うこずなく、より迅速でコスト効率の高いアプリケヌション開発が可胜になり、開発者が最新の゜フトりェア アヌキテクチャの実践に準拠した包括的な゜フトりェア ゜リュヌションを䜜成できるようになりたす。