# コンセプトFAQ

## どのような製品を提供していますか？

EMQXには[2つの主要な製品ライン](https://www.emqx.com/en/products/emqx)があります。製品ごとに対応可能な接続数、機能、サービスなどが異なります。

- **EMQX Enterprise**: EMQX Enterpriseは商用のセルフホスト型MQTTメッセージングプラットフォームです。データのパーシステンス（Redis、MySQL、MongoDB、PostgreSQL対応）、Kafkaへのデータ連携、LoRaWANサポート、EMQX監視、Kubernetesデプロイメントなどをサポートします。最大100万の同時MQTT接続に対応しています。
- **EMQX Cloud**: [EMQX Cloud](https://www.emqx.com/cloud)は完全マネージド型のMQTTクラウドサービスで、EMQがインフラのデプロイ、保守、スケーリング、アップグレードをすべて管理します。世界初の完全マネージドMQTT 5.0パブリッククラウドサービスとして、ワンストップの運用・保守コロケーションとMQTTサービスの独立した環境を提供します。IoT時代において、EMQX Cloudは業界向けアプリケーションの迅速な構築と、IoTデータの収集、送信、計算、パーシステンスを容易に実現します。

## WebSocketとは何ですか？EMQXに接続する際にWebSocketを使うのはどんな場合ですか？

WebSocketは双方向通信を可能にするプロトコルで、現代のウェブブラウザがサポートするAPIです。ユーザーはWebSocket APIを使い、ウェブブラウザとサーバー間に双方向通信チャネルを作成できます。WebSocketを通じて、サーバーはブラウザにメッセージをプッシュできます。EMQXはWebSocketをサポートしており、ブラウザからMQTTトピックへのパブリッシュやサブスクライブが可能です。

## EMQXはどのように高い同時接続数と高可用性を実現していますか？

高い同時接続数と高可用性はEMQXの設計目標です。これを実現するために以下の技術を採用しています：

- ソフトリアルタイム、高同時接続、フォールトトレランスに優れたErlang/OTPプラットフォームを最大限活用
- 完全非同期アーキテクチャ
- 接続、セッション、ルート、クラスターの階層設計
- メッセージングとコントロールパネルの分離

これらの設計と実装により、単一のEMQXノードで500万接続を処理可能です。

EMQXはクラスタリングをサポートしており、クラスタ内のノード数を増やすことで性能をスケールアウトできます。ノードが1つダウンしてもMQTTサービスは中断されません。

## EMQXはメッセージをサブスクライバーに転送する際、元の順序を保証しますか？

EMQXは同一クライアントから同一トピックに対するメッセージの転送順序を、QoSレベルに関わらず受信順に保証します。メッセージの損失や重複があっても、MQTT仕様に基づき転送順序は一貫しています。

ただし、異なるトピック間のメッセージ転送順序は保証しません。これらは別々のチャネルとして扱われます。例えば、トピックAのメッセージがトピックBのメッセージより先にEMQXに到着しても、トピックBのメッセージが先に転送される可能性があります。
