オープンソースの分散メッセージストリーミングツールApache Kafkaの商用化サービス(リアルタイムデータストリーミング)を提供しているConfluentが今週、Kafkaのユーザーにとって嬉しい機能を発表した。それは、Kafkaを使ってメッセージを、“正確に一度だけ”送る能力だ。
それのどこがすごいのか、門外漢には分かりづらいが、Kafkaのような高速メッセージングツールを使っている人たちにとっては、長年の見果てぬ夢だった。コミュニティの人たちは、実現不可能とも思っていた。
通常、メッセージを送る側は、それが届いたという受信確認を待つ。しかしConfluentのCTO Neha Narkhedeによると、Kafkaのような分散メッセージングシステムでは、途中で問題が起きることがある。コンピューターのエラー、ネットワークの障害、などなど。しかしたとえば金融関連のトランザクションなどでは、メッセージは確実に一度だけ送られてほしい。二度以上は、ノーだ。
多くの人びとが“正確に一度だけ”は達成不可能な目標と考えているのは、それを実現するためのスピードと正確さのトレードオフが大きすぎるからだ。しかしNarkhedeによると、同社はこの問題に大量の技術者をつぎ込み、1年がかりでやっと、長年探し求めていた解に到達した。
それを実現している技術
コメント