データ ストリームがあります。基本的には、毎分 30 ~ 50 のレコードが追加される SQL テーブルです。リアルタイムに近い速度で処理する必要があります(レコードがデータベースに表示されてから約 10 分で処理されるはずです)。ここでは、ワークフローのようなソリューションを使用して、すべてのレコードを簡単に処理できるようにしたいと考えています。高可用性を実現するには、このソリューションが必要です。システムは別のハードウェア ノードで動作し、ノードの 1 つがダウンした場合にフォールト トレラントである必要があります。基本的に何が起こるかは次のとおりです。
- 新しいレコードがデータベースに追加されます
- ワークフローはそれを処理し始めます
- その処理の結果としていくつかの処理を行います (電子メールの送信、データベースへの挿入など)。
- フレームワークは、レコードが処理されたことを記憶する必要があります
もう 1 つの要件は、レコードの 1 つの処理中にエラーが発生した場合、フレームワークが他のレコードの処理を停止してはならないということです。この特定のレコードには再処理が必要であることを覚えておく必要があります。
twitter-storm がこれと似たようなことをすると聞いたことがありますが、ここで使用するのはやり過ぎではありませんか? 私が理解しているように、その主な目的は、ここではまったく必要のない膨大な量のデータを同時に処理することです。