データ指向アプリケーションデザインを読み終えたので個人的な感想。
まず書籍の冒頭にTwitterのフォロー、フォロワーのソーシャルデータベースについて触れられてあったので、永遠の課題、タイムラインの表示について、そのアプローチの解説を期待して購入。
で、感想は?というとデータベースの分散パターンの理論と問題の解説かなという感想でした。
期待していたソーシャルDBの設計とアプローチについての解説はなしに近しかった。
複数ユーザのデータアクセスを解説する際なんかは、そういったソーシャルモデルを例にして解説をしてはいるんだけどね。
僕自身、10年以上レプリケーションされた複数のデータベースと分散したNoSQLを運用していた経験があって、当時経験した、同一ノード上で複数のトランザクションによる同データへのアクセス、更新や、トランザクションの隔離レベル、レプリケーション遅延によりどういった問題が起こるか?なんかは良く解説された本だなあと思ったりした。
例えば、スレーブAで確認できるデータがスレーブBではまだ反映されていないみたいな時、ユーザのセッションによって表示されているデータが違うよね。的なやつ。
ただ先にも書いた通り理論の解説なので一通り経験してきた人にとっては、あるある的なTipsであまり学びにならないかもしれない。
ラストは分散されたデータにアクセスするアプローチ。これもバッチ処理は馴染み深いものだったけど、ストリーム処理は逆に僕には難しくて、Apache KafkaのようなメッセージキューやFirebaseのようなDBをイメージしながら読み進めた。先に述べたTwitterのようなタイムラインへのアプローチも少しだけ触れている。
大きなデータ量になるアプリケーション要件があるとか、データベースを分散したばかり、または検討しているなんて人にはぴったりなんじゃないかな。