現在、個人開発をしているアプリケーションの運用コストの最適化を目的に、ニュース取得・AI分析の処理をSQSとLambdaを使ったイベント駆動型の構成へ移行しています。
当初はOutbox Patternについて、「DBの更新とイベントの保存を同一トランザクションで行うことで整合性を保つ」という部分を理解すれば実装できると思っていました。
しかし実際に取り組んでみると、Outboxに保存されたイベントをどのようにSQSへ届けるのか、送信に失敗した場合にどう扱うのか、SQSから受け取ったメッセージをLambda側でどう処理するのかなど、その先にも多くの設計が必要でした。
実装を進める中で、それまで理解していたつもりだったイベント駆動やメッセージングについて、実際には概念の表面しか理解できていなかったことに気づきました。
今回の経験を通して、知識として学ぶだけでなく、実際に手を動かして試してみることで初めて見えてくることが多くあると感じ、改めて実際にやってみることの大切さを実感しました。