😎

2025-W32 - Axonエラーハンドリングとアーキテクチャ選択・ロケットスタート時間術

2025年08月10日


今週やったこと

  • Axon Frameworkのイベントハンドラのエラーハンドリングを勉強した
  • 「The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か」を読んだ
  • 「なぜ、あなたの仕事は終わらないのか」を読んだ

Axon Frameworkのイベントハンドラのエラーハンドリング

Event Processors

Event Processors

docs.axoniq.io

主な要素としては以下があるとのこと。

  • ListenerInvocationErrorHandler
    • EventHandler の実行で例外が発生した場合に呼び出される
    • 例外を無視する、再実行する、リスローする、のいずれか
    • デファルトでは、ログ出力して無視する
  • ErrorHandler
    • EventHandler が例外をスローした場合、または EventHandler 以外の箇所で例外が発生した場合に呼び出される
    • 例外を無視する、リスローする、のいずれか
    • デフォルトでは、リスローする
  • Dead Letter Queue (DLQ)
    • デフォルトでは無効、設定で有効化する必要あり
    • 有効化すると、ErrorHandler が例外を無視した場合にイベントがDLQに送られる
    • DLQイベントが送られると、同一のセグメントは全てDLQに送られる
    • 自動では再処理されないため、再処理する仕組みを実装する必要がある
    • DLQの上限もありそう

例えば EventHandler でメール通知をする場合、デフォルトの設定のままだと、 LoggingErrorHandler (ListenerInvocationErrorHandler のデフォルト実装) によってログ出力されるだけ。 一般的にはメール通知は一定回数はリトライしたいはずなので、 EventHandler 側にリトライする処理を追加するか、 ListenerInvocationErrorHandler をカスタマイズしてリトライ処理を組み込む必要がある。 ただし、 ListenerInvocationErrorHandler はProcessingGroup単位で指定することになるため、 ProcessingGroupをどう設計するかが重要になる。

EventHandler が担う処理の整合性、可用性、運用コスト等の要件に応じて、 どう処理すべきかを切り分けるのがよい。

いやー難しいな。。

The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か

The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend

The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend

2025/02/28(金) JSConf.jp おかわり Node学園46時限目...

speakerdeck.com

t-wadaさんのスライド。 The Clean Architecture (例の同心円のアーキテクチャ) がWebフロントエンドにしっくりこない理由を、 制約や要件の違いから説明してくれている。

個人的な学び

  • 「WEBフロントエンド」っていう言葉の定義をちゃんと定義してから会話を進めてた。 ちゃんと文脈を明示することはすごく大事。見習いたい。
  • フロントエンドとバックエンドでは制約も重視される要件も違うから、 選択されるアーキテクチャも変わってくる。なにが求められるかを把握して、 使うアーキテクチャを選ぶ必要がある。
  • アーキテクチャの原則は、アーキテクチャ選択をする上では常に役に立つ。 ただし、それは例の同心円を選択するという意味ではない。

なぜ、あなたの仕事は終わらないのか

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である eBook : 中島聡: Kindleストア

なぜ、あなたの仕事は終わらないのか スピードは最強の武器である eBook : 中島聡: Kindleストア

Amazon.co.jp: なぜ、あなたの仕事は終わらないのか スピードは最強の武器である eBook : 中島聡: Kindleストア...

amzn.asia

元Microsoftの中島聡さんの本。Kindle Unlimitedで読めた。

「ロケットスタート時間術」という仕事の進め方を中心に、 中島さんの考え方を色々学べた。

重要ポイント

  • 時間は平等だから、時間術で結果を出す必要がある
  • 仕事の成果は過程ではなく結果
  • 複雑な問題を解決するには、問題を分離する
  • 時短したければ予習して、質問できる機会を最大化しろ
  • 嫌なことをやりたくなければ効率化するしかない
  • 言葉で説明できないものは先に形にしてしまう
    • そのためにとっととプロトタイプを作れ
  • ラストスパートに期待するな、スタートダッシュで余裕を作れ
  • 仕事は最速で終わらせるな、安定して続けることを重視しろ

個人的な学び

  • 成功するには、自分の成果を最大化するために必要なことを選択する必要がある
    • 比較的理想論に見える話が多いけど、この理想を実行できる状況や人は非常に稀だから、成功できる人は少ないんだろう
  • スタートダッシュで余裕を作り、あとは流して進めるという考えかたは完全同意
  • なんとなく、日本社会の中では歓迎されない気がする
  • アジャイル的なコミュニケーション重視の仕事の場合や、マネジメント側の仕事に関しては、そのまま適用できなさそう
    • 個人ではなくチームでこの時間術をやる感じになるのか?
    • 仕事の性質によって使える・使えないが変わってきそう

今週の学び

  • Axonのエラーハンドリング周りは、どう設計するかが難しい
  • 学んだことをAIを使って整理すると、考えるべきポイントを見出しやすい
  • なにをどのシチュエーションに取り入れるか、自分なりにアレンジが必要

来週やりたいこと

  • Kindleセールで買った本を読む
  • キーボードに関することをブログに書きたい(ネタは特に決めてない)
  • 登壇テーマを考える