ソフトウェアデザイン12月号はRiak CSとRiakの話の両方

ソフトウェアデザインの連載ももう半年近くなってきて、なかなか感慨が湧くかと思ったがそれどころではない多忙な日々を過ごしています。さて今月の記事はなかなか重量級で、Riak CSの設計から、Riakを使ったアプリケーションの設計技法を解説しています。

設計技法というと、モデリングとか、ORMとか、スキーマとか…?と思われるかもしれませんが、NoSQLはそれ以前の問題。そもそもSQLどころかトランザクションだってないので、データ構造を壊さないようにアプリケーションロジックを設計して動かすそもそもの仕組みを自分でやらなければいけません。RDBMSだとかなりの部分をデータベースに任せてとりあえず適当なスキーマをしてもトランザクションがデータの整合性を守ってくれますが、Riakのようなデータベースではそうはいきません。

そこで、Riak上でCASのようなものとかユーザー管理をとりあえず作りたい場合はどうするか、オブジェクトの状態遷移をVector Clocks(というか、RiakのSiblings…)を使ってどのように実現するか、といったことを、実際にRiakを作ったエンジニアが設計したRiak CSを例にして解説しています。中の人が作ったのでとりあえず正しいというか、安全な方法というか、後から入った僕が見てもよくできてるなと感動するレベルで面白いです。そして面白いということは、かなり難解でして…私の文章が至らぬところもあると思うので、読んでくださって質問があるときは適当に @kuenishi なりに投げてみてください。空中リプだと見逃す可能性もありますがあしからず。

あまりに重量級なので1月では書ききれず、2部に分かれています。そしてその第2部を今まさに執筆中でして、これがなかなか…ちょっとアルコールでも入れるか。