MEGAZONE

MEGAZONEブログ

Building next-generation applications with event-driven architecture
re:Invent 2023 Serverless Compute

Building next-generation applications with event-driven architecture

Pulisher : AI & Data Analytics Center チョ・ミレ
Description : イベントベースアーキテクチャーでアプリケーションを構築する方法を紹介するセッション

cloud環境ではイベントドリブンアーキテクチャは必須です。 特に使用経験があるEventBridgeと、lambdaをメインにイベント構造を学べる機会であり、よりarchitecturalな視点で開発するためのソリューションを提供されることを期待して応募しました。

イベントベースのアーキテクチャは、スケーラブルな分散型アプリケーションを構築するのに役立ちます。アプリケーションの統合を解除すると、アプリケーションの耐久性が向上し、管理が容易になります。

1.一般的なintegration patternとその解除方法について説明します。
2.AWSメッセージングサービスを使用してマイクロサービスを接続し、最小限のカスタムコードを使用してデータフローを調整する方法を学びます。
3.idempotency(idempotency)を理解し、計画することで、アプリケーションの問題に備えることができる冗長イベントを減らし、復元力を構築する方法を学びます。

Integration architecture構造 – 同期型アプローチ

・従来の同期アプローチでは、システムが特定の場所、データ形式、およびその他の依存関係に大きく依存していることがよくあります。
・特に、位置依存性と潜在的な障害点の点でシステムが通信する必要がある場合、結合は問題を引き起こす可能性があります。

Asynchronous point-to-point model – Queue : Disadvantage – 重複処理問題

・分散システムにおける重複処理問題 : メッセージが複数回伝達される非同期通信では、開発者は同じイベントやメッセージが複数回処理されるシナリオを考慮する必要があります。
・開発者は、重複の可能性を考慮し、同じメッセージを複数回処理しても望ましくない結果が発生しないようにアプリケーションを慎重に設計する必要があります。

Asynchronous point-to-point model – router : Disadvantage- senderへの従属性

・senderはルーティング決定の重要なポイントとなり、チャンネルを変更または追加するにはsenderrkロジックを更新する必要があります。
・これにより、送信者への依存度が高くなり、ルーティングロジックを修正する場合、更新や再配置が必要になる場合があります。

Asynchronous message-router model (bus)

・回復力 : 緩く結合された特性により、システムの回復力が向上します。1つのサブスクライバーまたはコンポーネントが一時的に使用できない場合、他のコンポーネントは中断することなくイベントを受信して処理し続けることができます。
・動的サブスクリプションとイベントフィルタリング:イベントフィルタリング機能と組み合わせたこの動的サブスクリプションにより、どのイベントがどのサブスクライバーに届くかを細かく制御することができます。
・分散型イベント処理ロジック:送信者の複雑さとメンテナンスの負担を軽減し、より分散化されたスケーラブルなシステムを促進します。

EventBridge : 動的なルーティング機能を提供

イベントブリッジは、動的なイベントルーティング機能を提供し、手動の介入や複雑なルーティングロジックを必要とせずにイベントを適切なターゲットに送ることができ、イベント駆動型アーキテクチャの設計とメンテナンスを簡素化します。

アプリケーションの継続的な通信がなくてもイベントに応答するイベントドリブンアーキテクチャの概念を知ることができました。 また、従来の同期的なアプローチと比較して、それぞれの違いを確認することができました。

分散システムの冗長処理を使用してデータの整合性を確保する方法を学ぶことができ、イベントベースのシナリオでの冗長性防止などのトピックを含む、アーキテクチャの構成を実践してみたいと思います。

ブログ一覧

この記事の読者はこんな記事も読んでいます