0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Event Streams in Action 第1章、第2章 読書メモ

Last updated at Posted at 2025-10-23

2019年5月に出版された本。ちょっと古いけどワクワク感エグいので少し読んだ

データ処理アーキテクチャのパラダイム

データ処理アーキテクチャも進化していて、この本ではこれからは統一ログ時代(unified log era)だと言ってます。キングダム!

クラシック時代

ポイントツーポイントで強結合
データウェアハウスへの反映はバッチで反映間隔は長い

未だにこの構成ごまんとある

ハイブリッド時代

オンプレ、SaaS、独自開発システムが混在する
構成が複雑、データが複数の場所に散らばっている

統一時代

統一ログがデータの真実のソース
イベントが保存されてる
疎結合、リアルタイム

統一ログ

統一ログとは、追記のみ可能な、順序付けされた分散ログのこと

統一(Unified)

統一といってもイベントを1つのイベントストリームで扱うという意味ではない。目的や使うアプリケーション毎にストリームある。

データベースでいうとストリーム=テーブル の感じ。アプリは複数のストリームの内容を読み込んでなにかすることもある。

追記のみ可能

不変アーキテクチャというやつ。唯一の真実がここにある。変更や削除は、それ用のイベントを出すってことになるはず。

分散された

シャードのこと。

順序付けされた

統一ログの中で、各シャードに流れるイベントに順番がついてるってこと。これがあることで、アプリケーションは「どこまで読んだか」「次に何を読めばいいか」が(自身で持っているカーソルと比較して)分かるようになる。

以下いつか使えそうなのでメモ

ホットスワッピング

旧バージョンが稼働中に新バージョンを統合ログの先頭から取り込んで、追いついたらユーザーを切り替えて旧バージョンを停止して、サービスを止めずにアプリケーションをアップグレードするやりかた

イベントのモデリング

主語ー述語ー目的語が基本。これにメタ情報がつく。
メタ情報については詳しく書いてないけどevent id, event type, timeがあればよさそう
イベントタイプの命名はドメイン用語(ビジネスエンティティ)を使う模様

例:山田さんがペンを(webショップで)買った
買い物客が商品を買ったイベント

{
  "event_id": "uuid_xxx",
  "event_type": "SHOPPER_ORDERD_PRODUCT",    
  "shopper": {                           
    "id": "123",
    "name": "Yamada",
  },
  "product": {                           
    "product_id": "prd-001",
    "name": "pen"
  },
  "timestamp": "2025-10-23T22:00:11Z"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?