Kafkaは速い ― でも私はPostgresを使う
(topicpartition.io)核心的な主張
技術業界は2つの陣営に分かれている:
- 陣営1: バズワードを追いかけ、複雑で最新の技術スタックを無分別に導入する
- 陣営2: 常識的で実用的なアプローチを取り、必要な分だけ使う
著者は、ほとんどの場合 Kafkaの代わりにPostgresをpub/subおよびキューシステムとして使える と主張する。
ベンチマーク結果
Pub/Sub性能
- 4 vCPUシングルノード: 1秒あたり5,036メッセージ書き込み、25,183件読み取り(5倍ファンアウト)
- 4 vCPU 3ノードレプリケーション: ほぼ同等のスループットを維持し、レイテンシはやや増加
- 96 vCPUシングルノード: 1秒あたり243,000メッセージ、1.16 GiB/sの読み取り速度
キュー(Queue)性能
- 4 vCPUシングルノード: 1秒あたり2,885メッセージ
- 96 vCPUシングルノード: 1秒あたり20,144メッセージ
主な論点
- ハードウェアの進化: 最新ハードウェア(192コアCPU、4TB RAM)により、シングルノードが非常に強力になった
- Postgresルネサンス: 「何でもPostgresに入れよう」という流れが広がっている
- 実用性: OpenAIのような巨大スタートアップでさえ、いまも単一のPostgresインスタンスを使っている
- 組織的オーバーヘッド: 新技術の導入には、学習、運用、監視などのコストが発生する
結論
「Postgresが限界を迎えるまでは、とりあえずPostgresを使おう」
ほとんどの企業に必要なのは毎秒数MB程度のスループットであり、これはPostgresで十分に処理できる。複雑な分散システムは、本当に必要になったときにだけ導入すべきだというメッセージを伝えている。
8件のコメント
Kafka は遅いんだけど…
ポグリがあらゆる状況に適しているかは分かりませんが、Kafkaを使う必要がないのにKafkaを使って余計な工数がかかっているケースはよく見かける気がします。
また PostgreSQL 礼賛記事か……
重要なのは必要なぶんだけ使うことで、
柔軟に切り替えられる設計ですよね
これを見ると、最も極端なPostgreSQL推薦文を思い出しますね
おお、どうやってタイトルを好みどおりに変えたんですか?
タイトルですか?
特に大げさな工夫をしたわけではないんですけどね。
https://news.hada.io/guidelines
> Markdown をサポート
> 本文とコメントの両方で利用できます。
> 基本的に CommonMark 規約に従います。
> 画像はサポートされていません。
さらに、GeekNews の URL の場合はリンクタイトルの前にアイコンが表示されるようです
SQLite が壊れるまでは、SQLite だけを使います