私は Mongoose (MongoDB を永続ストレージに使用する node.js の ORM) を評価してきました。
私がやりたいのは、アプリの起動時に DB が起動していないときにアプリが実行できるようにすることと、DB がダウンするのをインテリジェントに処理することです。
現在、どちらの場合も機能しない私のテストアプリはこれを行います:
var mongoose_connection = mongoose.createConnection(DATABASE_URL, {server:{poolSize:4}});
次に、モデルを作成するときにその接続を使用します。
アプリの開始時に DB がダウンしている場合、インスタンスでの save() 呼び出しはエラーなしでサイレントに失敗します。DB が復旧すると、書き込まれることはありません。
したがって、接続が発生しなかったことを検出し、アプリが実行時にそれを認識できるようにして、何らかの方法で処理できるようにする必要があります。
アプリの起動後に DB がダウンしても、save() 呼び出しはまだエラーを引き起こしませんが、キューに入れられ、DB が戻ったときに書き込まれます。
DB がダウンしているときにイベントを取得し、キューに保存されている数を照会するために API にフックしたいことを除いて、それは問題ないようです。ある時点で、キューに入れられたイベントが非常に多くなり、新しいイベントの作成をやめてアプリを元に戻したいと思うかもしれません。