RubotyのデータをLevelDBで永続化するruboty-leveldbというGemを作った
Contents
経緯
会社でチャットボットとして Ruboty を使ってます。
Ruboty はデータの永続化にプラグインを使わないといけないんですが、今は Redis 用のプラグインしか用意されていません。 (もしかしたら誰か作ってるのがあるかも)
おそらく、Ruboty は Heroku + Redis To Go のような環境で運用されることを想定されていて、Redis 用のプラグインしかないんだと思います。 プライベートで使ってるのはその構成なんですが、会社では自前のサーバで Docker コンテナとして動作させています。
外部のサーバに置きたくなくてそうしてるのでデータも内部に持ちたかったんですが、Ruboty のためだけに Redis サーバ運用するのもなんだかなーとしばらくデータ永続化せずに使ってました。
けどこのままはアカンなーということで、LevelDB を使って Ruboty のデータを永続化できる ruboty-leveldb というプラグインを作成しました!
なぜLevelDB?
正直言うと、余分なサーバ建てずにデータの永続化ができればテキストファイルでも他の KVS でもなんでも良かったんですが、使ってみたかったので LevelDB にしました。
Ruboty のデータぐらいだと、LevelDB が他の KVS に比べてどういいのかとかは全然見えません。
個人的には KyotoCabinet が好きで使ってたんですが、ほぼ同じ感覚で使えました。 LevelDB が流行りなら LevelDB でも全然いいなーという感想です。
LevelDB についてはここがまとまってました。
使い方
Qiita に書きました。
感想
Ruboty まわりはとてもコードが綺麗でよく見てるんですが、本当に参考になります。 ruboty-leveldb もほとんど ruboty-redis まんまです w
…今気づいたんですが Ruboty の README で ruboty-leveldb が紹介されてる…!! ありがとうございます!!