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"