2021-09-07のツイート

  • 02:39:42
    マイクロサービス同士が疎結合でない場合、相手サービスについて知る必要がある。サービスは自動スケーリングして動的に変化する。ここでサービスディスカバリを使う。一方でメッセージブローカーをつかったメッセージングであれば疎結合なので複雑なネットワーク位置の管理が不要になる。
  • 02:59:17
    メッセージングにおいて複数のレシーバーがメッセージを時系列で処理できるようにすることが課題。時系列でグループ化されたイベントをシャードと呼ばれるコンテナに入れて特定のコンシューマに送ると解決できる。シャーディングと呼ばれ、Apatch Kafka や AWS Kinesis で実装されている。
  • 03:24:59
    DynamoDB Streams の利点はテーブル変更を伴うコマンドとイベントのメッセージングがアトミックなこと。テーブルが変更されると必ずメッセージが作成される。
  • 03:43:53
    重複するメッセージを処理するには冪等なメッセージハンドラを作成する方法とメッセージを追跡し重複するメッセージを破棄する方法の2つある。
  • 03:46:46
    トランザクショナルメッセージングを実現するためにメッセージキューとしてデータベーステーブルを使う方法がある。キューはPolling publisherかTransaction log tailling でパブリッシュされる。DynamoDB Streamsは後者。
  • 03:49:08
    詳細が抽象化されたものを高水準と呼ぶ。高水準なAPIは詳細を抽象化したAPI
  • 15:08:23
    本実装に入る前にAPIやDB接続など結合部分の疎通が成功するかを確認すべきだった。